--- src/canberra-gtk-module.c.orig	2012-05-15 05:23:57.000000000 -0500
+++ src/canberra-gtk-module.c	2013-01-28 00:28:46.000000000 -0600
@@ -25,8 +25,10 @@
 #endif
 
 #include <gtk/gtk.h>
+#if defined(GDK_WINDOWING_X11)
 #include <gdk/gdkx.h>
 #include <X11/Xatom.h>
+#endif
 
 #include "canberra-gtk.h"
 
@@ -299,6 +301,7 @@ static SoundEventData* filter_sound_event(SoundEventData *d) {
         return d;
 }
 
+#ifdef GDK_WINDOWING_X11
 static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) {
         Atom type_return;
         gint format_return;
@@ -395,6 +398,19 @@ static gboolean window_is_xembed(GdkDisplay *d, GdkWindow *w) {
 
         return ret;
 }
+#else /* !GDK_WINDOWING_X11 */
+static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) {
+        return -1;
+}
+
+static gint display_get_desktop(GdkDisplay *d) {
+        return -1;
+}
+
+static gboolean window_is_xembed(GdkDisplay *d, GdkWindow *w) {
+        return FALSE;
+}
+#endif
 
 static void dispatch_sound_event(SoundEventData *d) {
         int ret = CA_SUCCESS;
--- src/canberra-gtk.c.orig	2010-09-28 08:55:03.000000000 -0500
+++ src/canberra-gtk.c	2013-01-28 00:28:46.000000000 -0600
@@ -26,8 +26,10 @@
 
 #include <gtk/gtk.h>
 #include <gdk/gdk.h>
+#if defined(GDK_WINDOWING_X11)
 #include <gdk/gdkx.h>
 #include <X11/Xatom.h>
+#endif
 
 #include "canberra.h"
 #include "canberra-gtk.h"
@@ -177,6 +179,7 @@ static GtkWindow* get_toplevel(GtkWidget *w) {
         return GTK_WINDOW(w);
 }
 
+#ifdef GDK_WINDOWING_X11
 static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) {
         Atom type_return;
         gint format_return;
@@ -204,6 +207,7 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) {
 
         return ret;
 }
+#endif
 
 /**
  * ca_gtk_proplist_set_for_widget:
@@ -258,6 +262,7 @@ int ca_gtk_proplist_set_for_widget(ca_proplist *p, GtkWidget *widget) {
                 GdkDisplay *display = NULL;
                 gint x = -1, y = -1, width = -1, height = -1, screen_width = -1, screen_height = -1;
 
+#ifdef GDK_WINDOWING_X11
                 if ((dw = gtk_widget_get_window(GTK_WIDGET(w))))
                         if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_X11_XID, "%lu", (unsigned long) GDK_WINDOW_XID(dw))) < 0)
                                 return ret;
@@ -285,6 +290,11 @@ int ca_gtk_proplist_set_for_widget(ca_proplist *p, GtkWidget *widget) {
                                 if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_X11_MONITOR, "%i", gdk_screen_get_monitor_at_window(screen, dw))) < 0)
                                         return ret;
                 }
+#else /* !GDK_WINDOWING_X11 */
+                dw = gtk_widget_get_window(GTK_WIDGET(w));
+                display = gtk_widget_get_display(GTK_WIDGET(w));
+                screen = gtk_widget_get_screen(GTK_WIDGET(w));
+#endif
 
                 /* FIXME, this might cause a round trip */
 
