diff -u -r Gtk2-1.202/t/GdkX11.t Gtk2-1.202-patched/t/GdkX11.t
--- Gtk2-1.202/t/GdkX11.t	2008-10-23 06:19:03.000000000 +1030
+++ Gtk2-1.202-patched/t/GdkX11.t	2009-01-08 21:27:27.000000000 +1030
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 use strict;
-use Gtk2::TestHelper tests => 11;
+use Gtk2::TestHelper tests => 14;
 
 # $Id: GdkX11.t 2054 2008-10-05 12:49:36Z tsch $
 
@@ -8,7 +8,7 @@
 $window -> realize();
 
 SKIP: {
-  skip("X11 stuff", 9)
+  skip("X11 stuff", 12)
     unless $window -> window() -> can("get_xid");
 
   like($window -> window() -> get_xid(), qr/^\d+$/);
@@ -17,7 +17,7 @@
   like(Gtk2::Gdk::X11 -> get_server_time($window -> window()), qr/^\d+$/);
 
   SKIP: {
-    skip("2.2 stuff", 3)
+    skip("2.2 stuff", 6)
       unless Gtk2->CHECK_VERSION(2, 2, 0);
 
     my $display = Gtk2::Gdk::Display -> get_default();
@@ -31,6 +31,18 @@
     like($screen -> get_screen_number(), qr/^\d+$/);
     ok(defined $screen -> get_window_manager_name());
     ok(not $screen -> supports_net_wm_hint(Gtk2::Gdk::Atom -> new("just-testing")));
+
+    #The values for the STRING atom (and others) are defined as part of the the X11 protocol
+    ok(Gtk2::Gdk::Atom->intern("STRING")->to_xatom_for_display($display) == 31, "to_xatom_for_display");
+
+    SKIP: {
+      skip("not-multihead-safe stuff", 2)
+	unless UNIVERSAL::can("Gtk2::Gdk::X11", "net_wm_supports");
+      
+      ok(Gtk2::Gdk::Atom->intern("STRING")->XATOM() == 31,"XATOM");
+      ok(Gtk2::Gdk::Atom->intern("STRING")->to_xatom() == 31,"to_xatom");
+
+    }
   }
 
   SKIP: {
diff -u -r Gtk2-1.202/xs/GdkX11.xs Gtk2-1.202-patched/xs/GdkX11.xs
--- Gtk2-1.202/xs/GdkX11.xs	2008-10-23 06:19:01.000000000 +1030
+++ Gtk2-1.202-patched/xs/GdkX11.xs	2009-01-08 21:06:36.000000000 +1030
@@ -27,7 +27,7 @@
  * there is no typemap for Display*, Screen*, etc, and indeed no perl-side
  * functions to manipulate them, so they are out for the time being.
  *
- * XID/XWINDOW is treated as UV.
+ * XID/XWINDOW/XATOM is treated as UV.
  *
  * all XS blocks are wrapped in #ifdef GDK_WINDOWING_X11 to make sure this
  * stuff doesn't exist when wrapping gdk compiled for other backends.
@@ -176,3 +176,37 @@
 #endif /* 2.2.0 */
 
 #endif /* GDK_WINDOWING_X11 */
+
+
+# --------------------------------------------------------------------------- #
+MODULE = Gtk2::Gdk::X11	PACKAGE = Gtk2::Gdk::Atom	PREFIX = gdk_x11_atom_
+
+#ifdef GDK_WINDOWING_X11
+
+#if GTK_CHECK_VERSION (2, 2, 0)
+
+UV
+to_xatom_for_display (GdkAtom class, GdkDisplay *display)
+    C_ARGS:
+        display, class ;
+    CODE:
+	RETVAL = gdk_x11_atom_to_xatom_for_display(display,class);
+    OUTPUT:
+	RETVAL
+
+#endif /* 2.2.0 */
+
+#ifndef GDK_MULTIHEAD_SAFE
+
+UV
+gdk_x11_atom_to_xatom (GdkAtom atom)
+    ALIAS:
+	XATOM = 1
+    CLEANUP:
+	PERL_UNUSED_VAR (ix);
+
+#endif /* GDK_MULTIHEAD_SAFE */
+
+#endif /* GDK_WINDOWING_X11 */
+
+# --------------------------------------------------------------------------- #
