Index: gdk/x11/gdkselection-x11.c
===================================================================
RCS file: /cvs/gnome/gtk+/gdk/x11/gdkselection-x11.c,v
retrieving revision 1.17
diff -u -r1.17 gdkselection-x11.c
--- gdk/x11/gdkselection-x11.c	2001/07/18 04:31:09	1.17
+++ gdk/x11/gdkselection-x11.c	2001/07/25 22:13:34
@@ -497,7 +497,7 @@
   if (length)
     *length = property.nitems;
 
-  return res;
+  return (res == Success ? TRUE : FALSE);
 }
 
 /* The specifications for COMPOUND_TEXT and STRING specify that C0 and
Index: gtk/gtkclipboard.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkclipboard.c,v
retrieving revision 1.4
diff -u -r1.4 gtkclipboard.c
--- gtk/gtkclipboard.c	2001/07/18 22:43:41	1.4
+++ gtk/gtkclipboard.c	2001/07/25 22:13:34
@@ -641,11 +641,19 @@
 
   if (!result)
     {
-      /* If we asked for UTF8 and didn't get it, try text; if we asked
-       * for text and didn't get it, try string.  If we asked for
-       * anything else and didn't get it, give up.
+      /* If we asked for UTF8 and didn't get it, try compound_text;
+       * if we asked for compound_text and didn't get it, try text;
+       * if we asked for text and didn't get it, try string.
+       * If we asked for anything else and didn't get it, give up.
        */
       if (selection_data->target == gdk_atom_intern ("UTF8_STRING", FALSE))
+	{
+	  gtk_clipboard_request_contents (clipboard,
+					  gdk_atom_intern ("COMPOUND_TEXT", FALSE), 
+					  request_text_received_func, info);
+	  return;
+	}
+      else if (selection_data->target == gdk_atom_intern ("COMPOUND_TEXT", FALSE))
 	{
 	  gtk_clipboard_request_contents (clipboard,
 					  gdk_atom_intern ("TEXT", FALSE), 
