diff -Nru awesome-3.4.9/debian/changelog awesome-3.4.9/debian/changelog
--- awesome-3.4.9/debian/changelog	2011-05-01 12:45:37.000000000 +0200
+++ awesome-3.4.9/debian/changelog	2011-05-28 23:55:21.000000000 +0200
@@ -1,3 +1,11 @@
+awesome (3.4.9-1.2) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Cherry-pick patch from upstream to deal with xcb-util 0.3.8.
+  * Update build-deps accordingly.
+
+ -- Julien Cristau <jcristau@debian.org>  Sat, 28 May 2011 23:53:51 +0200
+
 awesome (3.4.9-1.1) unstable; urgency=low
 
   * Non-maintainer upload.
diff -Nru awesome-3.4.9/debian/control awesome-3.4.9/debian/control
--- awesome-3.4.9/debian/control	2011-01-17 14:46:21.000000000 +0100
+++ awesome-3.4.9/debian/control	2011-05-29 00:01:02.000000000 +0200
@@ -2,7 +2,7 @@
 Section: x11
 Priority: optional
 Maintainer: Julien Danjou <acid@debian.org>
-Build-Depends: debhelper (>= 7.0.50), libcairo2-dev, xmlto, asciidoc, libpango1.0-dev, cmake (>= 2.6.0), gperf, lua5.1, luadoc (>= 3.0.1), libxcb-xtest0-dev, libxcb-icccm1-dev (>= 0.3.3), libxcb-event1-dev (>= 0.3.6), libxcb-randr0-dev (>= 0.3.0), libxcb-aux0-dev (>= 0.3.0), libxcb-keysyms1-dev (>= 0.3.4), libxcb-xinerama0-dev, libxcb-atom1-dev (>= 0.3.0), libxcb-image0-dev (>= 0.3.0), libev-dev, liblua5.1-dev, libimlib2-dev, libdbus-1-dev, libxdg-basedir-dev (>= 1.0.0), libstartup-notification0-dev (>= 0.10), imagemagick, libxcb1-dev (>= 1.4), libxcb-shape0-dev
+Build-Depends: debhelper (>= 7.0.50), libcairo2-dev, xmlto, asciidoc, libpango1.0-dev, cmake (>= 2.6.0), gperf, lua5.1, luadoc (>= 3.0.1), libxcb-xtest0-dev, libxcb-icccm4-dev (>= 0.3.8), libxcb-randr0-dev (>= 0.3.0), libxcb-keysyms1-dev (>= 0.3.4), libxcb-xinerama0-dev, libxcb-image0-dev (>= 0.3.0), libev-dev, liblua5.1-dev, libimlib2-dev, libdbus-1-dev, libxdg-basedir-dev (>= 1.0.0), libstartup-notification0-dev (>= 0.10), imagemagick, libxcb1-dev (>= 1.6), libxcb-shape0-dev, libxcb-util0-dev
 Standards-Version: 3.9.1
 Homepage: http://awesome.naquadah.org
 Vcs-Git: git://git.debian.org/git/users/acid/awesome.git
diff -Nru awesome-3.4.9/debian/patches/Update-the-code-following-release-of-xcb-util-0.3.8.diff awesome-3.4.9/debian/patches/Update-the-code-following-release-of-xcb-util-0.3.8.diff
--- awesome-3.4.9/debian/patches/Update-the-code-following-release-of-xcb-util-0.3.8.diff	1970-01-01 01:00:00.000000000 +0100
+++ awesome-3.4.9/debian/patches/Update-the-code-following-release-of-xcb-util-0.3.8.diff	2011-05-28 23:52:53.000000000 +0200
@@ -0,0 +1,588 @@
+From c9f6b65c19e3e8ebd1bd4ca860a0e1fd66931e65 Mon Sep 17 00:00:00 2001
+From: Arnaud Fontaine <arnau@debian.org>
+Date: Wed, 27 Apr 2011 15:44:35 +0900
+Subject: [PATCH] Update the code following release of xcb-util 0.3.8.
+
+xcb-util is now split into several repositories since 0.3.8. This
+release also cleaned up the API a lot, thus update the code
+accordingly.
+
+Signed-off-by: Arnaud Fontaine <arnau@debian.org>
+Signed-off-by: Uli Schlachter <psychon@znc.in>
+---
+ awesome.c           |    2 +-
+ awesomeConfig.cmake |    7 ++---
+ client.c            |   56 +++++++++++++++++++++---------------------
+ client.h            |    6 ++--
+ common/xutil.c      |    1 -
+ event.c             |   10 +++---
+ ewmh.c              |    4 +-
+ property.c          |   68 +++++++++++++++++++++++++-------------------------
+ selection.c         |   14 +++++-----
+ systray.c           |    2 +-
+ window.c            |    4 +-
+ 11 files changed, 86 insertions(+), 88 deletions(-)
+
+diff --git a/awesome.c b/awesome.c
+index f89080c..1258b4c 100644
+--- a/awesome.c
++++ b/awesome.c
+@@ -154,7 +154,7 @@ scan(void)
+ 
+             if(!attr_r || attr_r->override_redirect
+                || attr_r->map_state == XCB_MAP_STATE_UNMAPPED
+-               || state == XCB_WM_STATE_WITHDRAWN)
++               || state == XCB_ICCCM_WM_STATE_WITHDRAWN)
+             {
+                 geom_wins[i] = NULL;
+                 p_delete(&attr_r);
+diff --git a/awesomeConfig.cmake b/awesomeConfig.cmake
+index ee75d49..252110a 100644
+--- a/awesomeConfig.cmake
++++ b/awesomeConfig.cmake
+@@ -127,7 +127,7 @@ execute_process(
+ 
+ # Use pkgconfig to get most of the libraries
+ pkg_check_modules(AWESOME_COMMON_REQUIRED REQUIRED
+-    xcb>=1.4)
++    xcb>=1.6)
+ 
+ pkg_check_modules(AWESOME_REQUIRED REQUIRED
+     glib-2.0
+@@ -139,10 +139,9 @@ pkg_check_modules(AWESOME_REQUIRED REQUIRED
+     xcb-xtest
+     xcb-xinerama
+     xcb-shape
+-    xcb-aux>=0.3.0
+-    xcb-atom>=0.3.0
++    xcb-util>=0.3.8
+     xcb-keysyms>=0.3.4
+-    xcb-icccm>=0.3.6
++    xcb-icccm>=0.3.8
+     xcb-image>=0.3.0
+     cairo-xcb
+     libstartup-notification-1.0>=0.10
+diff --git a/client.c b/client.c
+index 049e3d5..baae69f 100644
+--- a/client.c
++++ b/client.c
+@@ -52,7 +52,7 @@ luaA_client_gc(lua_State *L)
+     client_t *c = luaA_checkudata(L, 1, &client_class);
+     button_array_wipe(&c->buttons);
+     key_array_wipe(&c->keys);
+-    xcb_get_wm_protocols_reply_wipe(&c->protocols);
++    xcb_icccm_get_wm_protocols_reply_wipe(&c->protocols);
+     p_delete(&c->machine);
+     p_delete(&c->class);
+     p_delete(&c->instance);
+@@ -94,21 +94,21 @@ client_set_urgent(lua_State *L, int cidx, bool urgent)
+     if(c->urgent != urgent)
+     {
+         xcb_get_property_cookie_t hints =
+-            xcb_get_wm_hints_unchecked(globalconf.connection, c->window);
++            xcb_icccm_get_wm_hints_unchecked(globalconf.connection, c->window);
+ 
+         c->urgent = urgent;
+         ewmh_client_update_hints(c);
+ 
+         /* update ICCCM hints */
+-        xcb_wm_hints_t wmh;
+-        xcb_get_wm_hints_reply(globalconf.connection, hints, &wmh, NULL);
++        xcb_icccm_wm_hints_t wmh;
++        xcb_icccm_get_wm_hints_reply(globalconf.connection, hints, &wmh, NULL);
+ 
+         if(urgent)
+-            wmh.flags |= XCB_WM_HINT_X_URGENCY;
++            wmh.flags |= XCB_ICCCM_WM_HINT_X_URGENCY;
+         else
+-            wmh.flags &= ~XCB_WM_HINT_X_URGENCY;
++            wmh.flags &= ~XCB_ICCCM_WM_HINT_X_URGENCY;
+ 
+-        xcb_set_wm_hints(globalconf.connection, c->window, &wmh);
++        xcb_icccm_set_wm_hints(globalconf.connection, c->window, &wmh);
+ 
+         hook_property(c, "urgent");
+         luaA_object_emit_signal(L, cidx, "property::urgent", 0);
+@@ -721,7 +721,7 @@ HANDLE_GEOM(height)
+      *
+      * At this stage it's just safer to keep it in normal state and avoid confusion.
+      */
+-    window_state_set(c->window, XCB_WM_STATE_NORMAL);
++    window_state_set(c->window, XCB_ICCCM_WM_STATE_NORMAL);
+ 
+     if(!startup)
+     {
+@@ -767,14 +767,14 @@ client_geometry_hints(client_t *c, area_t geometry)
+     int32_t real_basew = 0, real_baseh = 0;
+ 
+     /* base size is substituted with min size if not specified */
+-    if(c->size_hints.flags & XCB_SIZE_HINT_P_SIZE)
++    if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_SIZE)
+     {
+         basew = c->size_hints.base_width;
+         baseh = c->size_hints.base_height;
+         real_basew = basew;
+         real_baseh = baseh;
+     }
+-    else if(c->size_hints.flags & XCB_SIZE_HINT_P_MIN_SIZE)
++    else if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_MIN_SIZE)
+     {
+         basew = c->size_hints.min_width;
+         baseh = c->size_hints.min_height;
+@@ -783,12 +783,12 @@ client_geometry_hints(client_t *c, area_t geometry)
+         basew = baseh = 0;
+ 
+     /* min size is substituted with base size if not specified */
+-    if(c->size_hints.flags & XCB_SIZE_HINT_P_MIN_SIZE)
++    if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_MIN_SIZE)
+     {
+         minw = c->size_hints.min_width;
+         minh = c->size_hints.min_height;
+     }
+-    else if(c->size_hints.flags & XCB_SIZE_HINT_P_SIZE)
++    else if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_SIZE)
+     {
+         minw = c->size_hints.base_width;
+         minh = c->size_hints.base_height;
+@@ -796,7 +796,7 @@ client_geometry_hints(client_t *c, area_t geometry)
+     else
+         minw = minh = 0;
+ 
+-    if(c->size_hints.flags & XCB_SIZE_HINT_P_ASPECT
++    if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_ASPECT
+        && c->size_hints.min_aspect_den > 0
+        && c->size_hints.max_aspect_den > 0
+        && geometry.height - real_baseh > 0
+@@ -838,7 +838,7 @@ client_geometry_hints(client_t *c, area_t geometry)
+     if(minh)
+         geometry.height = MAX(geometry.height, minh);
+ 
+-    if(c->size_hints.flags & XCB_SIZE_HINT_P_MAX_SIZE)
++    if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_MAX_SIZE)
+     {
+         if(c->size_hints.max_width)
+             geometry.width = MIN(geometry.width, c->size_hints.max_width);
+@@ -846,7 +846,7 @@ client_geometry_hints(client_t *c, area_t geometry)
+             geometry.height = MIN(geometry.height, c->size_hints.max_height);
+     }
+ 
+-    if(c->size_hints.flags & (XCB_SIZE_HINT_P_RESIZE_INC | XCB_SIZE_HINT_BASE_SIZE)
++    if(c->size_hints.flags & (XCB_ICCCM_SIZE_HINT_P_RESIZE_INC | XCB_ICCCM_SIZE_HINT_BASE_SIZE)
+        && c->size_hints.width_inc && c->size_hints.height_inc)
+     {
+         uint16_t t1 = geometry.width, t2 = geometry.height;
+@@ -969,9 +969,9 @@ client_set_minimized(lua_State *L, int cidx, bool s)
+         c->minimized = s;
+         banning_need_update((c)->screen);
+         if(s)
+-            window_state_set(c->window, XCB_WM_STATE_ICONIC);
++            window_state_set(c->window, XCB_ICCCM_WM_STATE_ICONIC);
+         else
+-            window_state_set(c->window, XCB_WM_STATE_NORMAL);
++            window_state_set(c->window, XCB_ICCCM_WM_STATE_NORMAL);
+         ewmh_client_update_hints(c);
+         if(strut_has_value(&c->strut))
+             screen_emit_signal(globalconf.L, c->screen, "property::workarea", 0);
+@@ -1333,7 +1333,7 @@ client_unmanage(client_t *c)
+ 
+     /* Do this last to avoid races with clients. According to ICCCM, clients
+      * arent allowed to re-use the window until after this. */
+-    window_state_set(c->window, XCB_WM_STATE_WITHDRAWN);
++    window_state_set(c->window, XCB_ICCCM_WM_STATE_WITHDRAWN);
+ 
+     /* set client as invalid */
+     c->invalid = true;
+@@ -2052,9 +2052,9 @@ luaA_client_get_size_hints(lua_State *L, client_t *c)
+ 
+     lua_createtable(L, 0, 1);
+ 
+-    if(c->size_hints.flags & XCB_SIZE_HINT_US_POSITION)
++    if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_US_POSITION)
+         u_or_p = "user_position";
+-    else if(c->size_hints.flags & XCB_SIZE_HINT_P_POSITION)
++    else if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_POSITION)
+         u_or_p = "program_position";
+ 
+     if(u_or_p)
+@@ -2068,9 +2068,9 @@ luaA_client_get_size_hints(lua_State *L, client_t *c)
+         u_or_p = NULL;
+     }
+ 
+-    if(c->size_hints.flags & XCB_SIZE_HINT_US_SIZE)
++    if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_US_SIZE)
+         u_or_p = "user_size";
+-    else if(c->size_hints.flags & XCB_SIZE_HINT_P_SIZE)
++    else if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_SIZE)
+         u_or_p = "program_size";
+ 
+     if(u_or_p)
+@@ -2083,7 +2083,7 @@ luaA_client_get_size_hints(lua_State *L, client_t *c)
+         lua_setfield(L, -2, u_or_p);
+     }
+ 
+-    if(c->size_hints.flags & XCB_SIZE_HINT_P_MIN_SIZE)
++    if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_MIN_SIZE)
+     {
+         lua_pushnumber(L, c->size_hints.min_width);
+         lua_setfield(L, -2, "min_width");
+@@ -2091,7 +2091,7 @@ luaA_client_get_size_hints(lua_State *L, client_t *c)
+         lua_setfield(L, -2, "min_height");
+     }
+ 
+-    if(c->size_hints.flags & XCB_SIZE_HINT_P_MAX_SIZE)
++    if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_MAX_SIZE)
+     {
+         lua_pushnumber(L, c->size_hints.max_width);
+         lua_setfield(L, -2, "max_width");
+@@ -2099,7 +2099,7 @@ luaA_client_get_size_hints(lua_State *L, client_t *c)
+         lua_setfield(L, -2, "max_height");
+     }
+ 
+-    if(c->size_hints.flags & XCB_SIZE_HINT_P_RESIZE_INC)
++    if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_RESIZE_INC)
+     {
+         lua_pushnumber(L, c->size_hints.width_inc);
+         lua_setfield(L, -2, "width_inc");
+@@ -2107,7 +2107,7 @@ luaA_client_get_size_hints(lua_State *L, client_t *c)
+         lua_setfield(L, -2, "height_inc");
+     }
+ 
+-    if(c->size_hints.flags & XCB_SIZE_HINT_P_ASPECT)
++    if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_ASPECT)
+     {
+         lua_pushnumber(L, c->size_hints.min_aspect_num);
+         lua_setfield(L, -2, "min_aspect_num");
+@@ -2119,7 +2119,7 @@ luaA_client_get_size_hints(lua_State *L, client_t *c)
+         lua_setfield(L, -2, "max_aspect_den");
+     }
+ 
+-    if(c->size_hints.flags & XCB_SIZE_HINT_BASE_SIZE)
++    if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_BASE_SIZE)
+     {
+         lua_pushnumber(L, c->size_hints.base_width);
+         lua_setfield(L, -2, "base_width");
+@@ -2127,7 +2127,7 @@ luaA_client_get_size_hints(lua_State *L, client_t *c)
+         lua_setfield(L, -2, "base_height");
+     }
+ 
+-    if(c->size_hints.flags & XCB_SIZE_HINT_P_WIN_GRAVITY)
++    if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_WIN_GRAVITY)
+     {
+         switch(c->size_hints.win_gravity)
+         {
+diff --git a/client.h b/client.h
+index d4ef52f..9674fac 100644
+--- a/client.h
++++ b/client.h
+@@ -123,7 +123,7 @@ struct client_t
+     /** Window holding command needed to start it (session management related) */
+     xcb_window_t leader_window;
+     /** Client's WM_PROTOCOLS property */
+-    xcb_get_wm_protocols_reply_t protocols;
++    xcb_icccm_get_wm_protocols_reply_t protocols;
+     /** Client logical screen */
+     screen_t *screen;
+     /** Client physical screen */
+@@ -248,8 +248,8 @@ client_raise(client_t *c)
+ static inline bool
+ client_isfixed(client_t *c)
+ {
+-    return (c->size_hints.flags & XCB_SIZE_HINT_P_MAX_SIZE
+-            && c->size_hints.flags & XCB_SIZE_HINT_P_MIN_SIZE
++    return (c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_MAX_SIZE
++            && c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_MIN_SIZE
+             && c->size_hints.max_width == c->size_hints.min_width
+             && c->size_hints.max_height == c->size_hints.min_height
+             && c->size_hints.max_width
+diff --git a/common/xutil.c b/common/xutil.c
+index 3d80e8d..c5a2127 100644
+--- a/common/xutil.c
++++ b/common/xutil.c
+@@ -25,7 +25,6 @@
+ #include "common/util.h"
+ 
+ #include <xcb/xcb.h>
+-#include <xcb/xcb_atom.h>
+ #include <xcb/xcb_icccm.h>
+ 
+ #include "common/xutil.h"
+diff --git a/event.c b/event.c
+index 8527ec5..a35918b 100644
+--- a/event.c
++++ b/event.c
+@@ -721,7 +721,7 @@ event_handle_clientmessage(xcb_client_message_event_t *ev)
+         client_t *c;
+         if((c = client_getbywin(ev->window))
+            && ev->format == 32
+-           && ev->data.data32[0] == XCB_WM_STATE_ICONIC)
++           && ev->data.data32[0] == XCB_ICCCM_WM_STATE_ICONIC)
+         {
+             luaA_object_push(globalconf.L, c);
+             client_set_minimized(globalconf.L, -1, true);
+@@ -795,13 +795,13 @@ static void
+ xerror(xcb_generic_error_t *e)
+ {
+     /* ignore this */
+-    if(e->error_code == XCB_EVENT_ERROR_BAD_WINDOW
+-       || (e->error_code == XCB_EVENT_ERROR_BAD_MATCH
++    if(e->error_code == XCB_WINDOW
++       || (e->error_code == XCB_MATCH
+            && e->major_code == XCB_SET_INPUT_FOCUS)
+-       || (e->error_code == XCB_EVENT_ERROR_BAD_VALUE
++       || (e->error_code == XCB_VALUE
+            && e->major_code == XCB_KILL_CLIENT)
+        || (e->major_code == XCB_CONFIGURE_WINDOW
+-           && e->error_code == XCB_EVENT_ERROR_BAD_MATCH))
++           && e->error_code == XCB_MATCH))
+         return;
+ 
+     warn("X error: request=%s, error=%s",
+diff --git a/ewmh.c b/ewmh.c
+index 0aa5de7..ba4776c 100644
+--- a/ewmh.c
++++ b/ewmh.c
+@@ -226,7 +226,7 @@ ewmh_update_net_active_window(int phys_screen)
+ 
+     xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE,
+ 			xutil_screen_get(globalconf.connection, phys_screen)->root,
+-			_NET_ACTIVE_WINDOW, WINDOW, 32, 1, &win);
++			_NET_ACTIVE_WINDOW, XCB_ATOM_WINDOW, 32, 1, &win);
+ }
+ 
+ static void
+@@ -425,7 +425,7 @@ ewmh_client_update_hints(client_t *c)
+         state[i++] = _NET_WM_STATE_DEMANDS_ATTENTION;
+ 
+     xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE,
+-                        c->window, _NET_WM_STATE, ATOM, 32, i, state);
++                        c->window, _NET_WM_STATE, XCB_ATOM_ATOM, 32, i, state);
+ }
+ 
+ /** Update the client active desktop.
+diff --git a/property.c b/property.c
+index d5090c6..d2223ef 100644
+--- a/property.c
++++ b/property.c
+@@ -105,14 +105,14 @@ property_update_wm_transient_for(client_t *c, xcb_get_property_reply_t *reply)
+ 
+     if(reply)
+     {
+-        if(!xcb_get_wm_transient_for_from_reply(&trans, reply))
++        if(!xcb_icccm_get_wm_transient_for_from_reply(&trans, reply))
+             return;
+     }
+     else
+     {
+-        if(!xcb_get_wm_transient_for_reply(globalconf.connection,
+-                                            xcb_get_wm_transient_for_unchecked(globalconf.connection,
+-                                                                               c->window),
++        if(!xcb_icccm_get_wm_transient_for_reply(globalconf.connection,
++                                            xcb_icccm_get_wm_transient_for_unchecked(globalconf.connection,
++                                                                                     c->window),
+                                             &trans, NULL))
+             return;
+     }
+@@ -160,15 +160,15 @@ property_update_wm_normal_hints(client_t *c, xcb_get_property_reply_t *reply)
+ {
+     if(reply)
+     {
+-        if(!xcb_get_wm_size_hints_from_reply(&c->size_hints, reply))
++        if(!xcb_icccm_get_wm_size_hints_from_reply(&c->size_hints, reply))
+             return;
+     }
+     else
+     {
+-        if(!xcb_get_wm_normal_hints_reply(globalconf.connection,
+-                                          xcb_get_wm_normal_hints_unchecked(globalconf.connection,
+-                                                                            c->window),
+-                                          &c->size_hints, NULL))
++        if(!xcb_icccm_get_wm_normal_hints_reply(globalconf.connection,
++                                                xcb_icccm_get_wm_normal_hints_unchecked(globalconf.connection,
++                                                                                        c->window),
++                                                &c->size_hints, NULL))
+             return;
+     }
+ }
+@@ -180,31 +180,31 @@ property_update_wm_normal_hints(client_t *c, xcb_get_property_reply_t *reply)
+ void
+ property_update_wm_hints(client_t *c, xcb_get_property_reply_t *reply)
+ {
+-    xcb_wm_hints_t wmh;
++    xcb_icccm_wm_hints_t wmh;
+ 
+     if(reply)
+     {
+-        if(!xcb_get_wm_hints_from_reply(&wmh, reply))
++        if(!xcb_icccm_get_wm_hints_from_reply(&wmh, reply))
+             return;
+     }
+     else
+     {
+-        if(!xcb_get_wm_hints_reply(globalconf.connection,
+-                                  xcb_get_wm_hints_unchecked(globalconf.connection, c->window),
+-                                  &wmh, NULL))
++        if(!xcb_icccm_get_wm_hints_reply(globalconf.connection,
++                                         xcb_icccm_get_wm_hints_unchecked(globalconf.connection, c->window),
++                                         &wmh, NULL))
+             return;
+     }
+ 
+     luaA_object_push(globalconf.L, c);
+-    client_set_urgent(globalconf.L, -1, xcb_wm_hints_get_urgency(&wmh));
+-    if(wmh.flags & XCB_WM_HINT_STATE &&
+-       wmh.initial_state == XCB_WM_STATE_WITHDRAWN)
++    client_set_urgent(globalconf.L, -1, xcb_icccm_wm_hints_get_urgency(&wmh));
++    if(wmh.flags & XCB_ICCCM_WM_HINT_STATE &&
++       wmh.initial_state == XCB_ICCCM_WM_STATE_WITHDRAWN)
+         client_set_border_width(globalconf.L, -1, 0);
+ 
+-    if(wmh.flags & XCB_WM_HINT_INPUT)
++    if(wmh.flags & XCB_ICCCM_WM_HINT_INPUT)
+         c->nofocus = !wmh.input;
+ 
+-    if(wmh.flags & XCB_WM_HINT_WINDOW_GROUP)
++    if(wmh.flags & XCB_ICCCM_WM_HINT_WINDOW_GROUP)
+         client_set_group_window(globalconf.L, -1, wmh.window_group);
+ 
+     lua_pop(globalconf.L, 1);
+@@ -217,18 +217,18 @@ property_update_wm_hints(client_t *c, xcb_get_property_reply_t *reply)
+ void
+ property_update_wm_class(client_t *c, xcb_get_property_reply_t *reply)
+ {
+-    xcb_get_wm_class_reply_t hint;
++    xcb_icccm_get_wm_class_reply_t hint;
+ 
+     if(reply)
+     {
+-        if(!xcb_get_wm_class_from_reply(&hint, reply))
++        if(!xcb_icccm_get_wm_class_from_reply(&hint, reply))
+             return;
+     }
+     else
+     {
+-        if(!xcb_get_wm_class_reply(globalconf.connection,
+-                                   xcb_get_wm_class_unchecked(globalconf.connection, c->window),
+-                                   &hint, NULL))
++        if(!xcb_icccm_get_wm_class_reply(globalconf.connection,
++                                         xcb_icccm_get_wm_class_unchecked(globalconf.connection, c->window),
++                                         &hint, NULL))
+             return;
+     }
+ 
+@@ -238,7 +238,7 @@ property_update_wm_class(client_t *c, xcb_get_property_reply_t *reply)
+ 
+     /* only delete reply if we get it ourselves */
+     if(!reply)
+-        xcb_get_wm_class_reply_wipe(&hint);
++        xcb_icccm_get_wm_class_reply_wipe(&hint);
+ }
+ 
+ static int
+@@ -308,30 +308,30 @@ property_update_net_wm_pid(client_t *c,
+ void
+ property_update_wm_protocols(client_t *c, xcb_get_property_reply_t *reply)
+ {
+-    xcb_get_wm_protocols_reply_t protocols;
++    xcb_icccm_get_wm_protocols_reply_t protocols;
+     xcb_get_property_reply_t *reply_copy;
+ 
+     if(reply)
+     {
+         reply_copy = p_dup(reply, 1);
+ 
+-        if(!xcb_get_wm_protocols_from_reply(reply_copy, &protocols))
+-	{
++        if(!xcb_icccm_get_wm_protocols_from_reply(reply_copy, &protocols))
++        {
+             p_delete(&reply_copy);
+             return;
+-	}
++        }
+     }
+     else
+     {
+         /* If this fails for any reason, we still got the old value */
+-        if(!xcb_get_wm_protocols_reply(globalconf.connection,
+-                                      xcb_get_wm_protocols_unchecked(globalconf.connection,
+-                                                                     c->window, WM_PROTOCOLS),
+-                                      &protocols, NULL))
++        if(!xcb_icccm_get_wm_protocols_reply(globalconf.connection,
++                                             xcb_icccm_get_wm_protocols_unchecked(globalconf.connection,
++                                                                                  c->window, WM_PROTOCOLS),
++                                             &protocols, NULL))
+             return;
+     }
+ 
+-    xcb_get_wm_protocols_reply_wipe(&c->protocols);
++    xcb_icccm_get_wm_protocols_reply_wipe(&c->protocols);
+     memcpy(&c->protocols, &protocols, sizeof(protocols));
+ }
+ 
+diff --git a/selection.c b/selection.c
+index 527ec40..44b57c5 100644
+--- a/selection.c
++++ b/selection.c
+@@ -86,18 +86,18 @@ luaA_selection_get(lua_State *L)
+         if(event_notify->selection == XCB_ATOM_PRIMARY
+            && event_notify->property != XCB_NONE)
+         {
+-            xcb_get_text_property_reply_t prop;
++            xcb_icccm_get_text_property_reply_t prop;
+             xcb_get_property_cookie_t cookie =
+-                xcb_get_text_property(globalconf.connection,
+-                                      event_notify->requestor,
+-                                      event_notify->property);
++                xcb_icccm_get_text_property(globalconf.connection,
++                                            event_notify->requestor,
++                                            event_notify->property);
+ 
+-            if(xcb_get_text_property_reply(globalconf.connection,
+-                                           cookie, &prop, NULL))
++            if(xcb_icccm_get_text_property_reply(globalconf.connection,
++                                                 cookie, &prop, NULL))
+             {
+                 lua_pushlstring(L, prop.name, prop.name_len);
+ 
+-                xcb_get_text_property_reply_wipe(&prop);
++                xcb_icccm_get_text_property_reply_wipe(&prop);
+ 
+                 xcb_delete_property(globalconf.connection,
+                                     event_notify->requestor,
+diff --git a/systray.c b/systray.c
+index 6ea3dd5..92b7d39 100644
+--- a/systray.c
++++ b/systray.c
+@@ -197,7 +197,7 @@ systray_request_handle(xcb_window_t embed_win, int phys_screen, xembed_info_t *i
+ 
+     xcb_change_window_attributes(globalconf.connection, embed_win, XCB_CW_EVENT_MASK,
+                                  select_input_val);
+-    window_state_set(embed_win, XCB_WM_STATE_WITHDRAWN);
++    window_state_set(embed_win, XCB_ICCCM_WM_STATE_WITHDRAWN);
+ 
+     /* we grab the window, but also make sure it's automatically reparented back
+      * to the root window if we should die.
+diff --git a/window.c b/window.c
+index b86fa38..6a1909f 100644
+--- a/window.c
++++ b/window.c
+@@ -60,7 +60,7 @@ uint32_t
+ window_state_get_reply(xcb_get_property_cookie_t cookie)
+ {
+     /* If no property is set, we just assume a sane default. */
+-    uint32_t result = XCB_WM_STATE_NORMAL;
++    uint32_t result = XCB_ICCCM_WM_STATE_NORMAL;
+     xcb_get_property_reply_t *prop_r;
+ 
+     if((prop_r = xcb_get_property_reply(globalconf.connection, cookie, NULL)))
+@@ -187,7 +187,7 @@ window_opacity_set(xcb_window_t win, double opacity)
+     {
+         uint32_t real_opacity = opacity * 0xffffffff;
+         xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE, win,
+-                            _NET_WM_WINDOW_OPACITY, CARDINAL, 32, 1L, &real_opacity);
++                            _NET_WM_WINDOW_OPACITY, XCB_ATOM_CARDINAL, 32, 1L, &real_opacity);
+     }
+     else
+         xcb_delete_property(globalconf.connection, win, _NET_WM_WINDOW_OPACITY);
+-- 
+1.7.2.5
+
diff -Nru awesome-3.4.9/debian/patches/series awesome-3.4.9/debian/patches/series
--- awesome-3.4.9/debian/patches/series	2011-05-01 12:45:37.000000000 +0200
+++ awesome-3.4.9/debian/patches/series	2011-05-28 23:53:05.000000000 +0200
@@ -1,2 +1,3 @@
 debian-changes-3.4.9-1
 normalize-icon-path-names.diff
+Update-the-code-following-release-of-xcb-util-0.3.8.diff
