Only in metacity-head/: dnd-raise-metacity-2.patch
diff -pru metacity-temp/src/display.c metacity-head/src/display.c
--- metacity-temp/src/display.c	2006-05-09 11:30:14.000000000 -0600
+++ metacity-head/src/display.c	2006-05-09 11:30:55.000000000 -0600
@@ -410,7 +410,9 @@ meta_display_open (void)
     "_METACITY_VERSION",
     "_NET_WM_VISIBLE_NAME",
     "_NET_WM_VISIBLE_ICON_NAME",
-    "_NET_WM_MOUSE_ACTION"
+    "_NET_WM_MOUSE_ACTION",
+    "XdndEnter",
+    "XdndLeave"
   };
   Atom atoms[G_N_ELEMENTS(atom_names)];
   
@@ -570,6 +572,8 @@ meta_display_open (void)
   display->atom_net_wm_visible_name = atoms[92];
   display->atom_net_wm_visible_icon_name = atoms[93];
   display->atom_net_wm_mouse_action = atoms[94];
+  display->atom_xdnd_enter = atoms[95];
+  display->atom_xdnd_leave = atoms[96];
 
   display->prop_hooks = NULL;
   meta_display_init_window_prop_hooks (display);
diff -pru metacity-temp/src/display.h metacity-head/src/display.h
--- metacity-temp/src/display.h	2006-05-09 11:30:14.000000000 -0600
+++ metacity-head/src/display.h	2006-05-09 09:54:28.000000000 -0600
@@ -179,6 +179,8 @@ struct _MetaDisplay
   Atom atom_net_wm_visible_name;
   Atom atom_net_wm_visible_icon_name;
   Atom atom_net_wm_mouse_action;
+  Atom atom_xdnd_enter;
+  Atom atom_xdnd_leave;
 
   /* This is the actual window from focus events,
    * not the one we last set
diff -pru metacity-temp/src/window.c metacity-head/src/window.c
--- metacity-temp/src/window.c	2006-05-09 11:30:07.000000000 -0600
+++ metacity-head/src/window.c	2006-05-09 10:25:12.000000000 -0600
@@ -4727,6 +4727,31 @@ meta_window_client_message (MetaWindow *
       window_activate (window, timestamp, source_indication);
       return TRUE;
     }
+  else if (event->xclient.message_type ==
+           display->atom_xdnd_enter) 
+    {
+      MetaWindow *source;
+      Window source_xid = event->xclient.data.l[0];
+      source = meta_display_lookup_x_window (display, source_xid);
+      meta_warning ("XdndEnter on %s from %s (0x%lx)\n",
+                    window->desc, source ? source->desc : "NULL", source_xid);
+      if (meta_prefs_get_raise_on_click ())
+        meta_window_raise (window);
+      return TRUE;
+    }
+  else if (event->xclient.message_type ==
+           display->atom_xdnd_leave) 
+    {
+      MetaWindow *source;
+      Window source_xid = event->xclient.data.l[0];
+      source = meta_display_lookup_x_window (display, source_xid);
+      meta_warning ("XdndEnter on %s from %s (0x%lx)\n",
+                    window->desc, source ? source->desc : "NULL", source_xid);
+      /* FIXME: Should we return the window to its
+       * original stacking?  Would take some more work...
+       */
+      return TRUE;
+    }
   
   return FALSE;
 }
