Index: nautilus-2.30.1/libnautilus-private/nautilus-icon-dnd.c
===================================================================
--- nautilus-2.30.1.orig/libnautilus-private/nautilus-icon-dnd.c
+++ nautilus-2.30.1/libnautilus-private/nautilus-icon-dnd.c
@@ -824,6 +824,7 @@ auto_scroll_timeout_callback (gpointer d
 	}
 
 	/* Clear the old dnd highlight frame */
+	printf ("auto_scroll_timeout_callback() is going to dnd_highlight_queue_redraw() 1\n"); fflush (stdout);
 	dnd_highlight_queue_redraw (widget);
 	
 	if (!nautilus_icon_container_scroll (container, (int)x_scroll_delta, (int)y_scroll_delta)) {
@@ -834,6 +835,7 @@ auto_scroll_timeout_callback (gpointer d
 	}
 
 	/* Make sure the dnd highlight frame is redrawn */
+	printf ("auto_scroll_timeout_callback() is going to dnd_highlight_queue_redraw() 2\n"); fflush (stdout);
 	dnd_highlight_queue_redraw (widget);
 	
 	/* update cached drag start offsets */
@@ -1546,6 +1548,7 @@ drag_highlight_expose (GtkWidget      *w
 	gint x, y, width, height;
 	GdkWindow *window;
 	
+	printf ("drag_highlight_expose() entered\n"); fflush (stdout);
 	x = gtk_adjustment_get_value (gtk_layout_get_hadjustment (GTK_LAYOUT (widget)));
 	y = gtk_adjustment_get_value (gtk_layout_get_vadjustment (GTK_LAYOUT (widget)));
 	gdk_drawable_get_size (widget->window, &width, &height);
@@ -1557,11 +1560,14 @@ drag_highlight_expose (GtkWidget      *w
 			  NULL, widget, "dnd",
 			  x, y, width, height);
   
+	printf ("drag_highlight_expose() goes to draw rectangle x=%d, y=%d, w=%d, h=%d\n", x, y, width - 1, height - 1); fflush (stdout);
+	usleep(100000);
 	gdk_draw_rectangle (window,
 			    widget->style->black_gc,
 			    FALSE,
 			    x, y, width - 1, height - 1);
 	
+	printf ("drag_highlight_expose() done\n"); fflush (stdout);
 	return FALSE;
 }
 
@@ -1572,6 +1578,7 @@ dnd_highlight_queue_redraw (GtkWidget *w
 	NautilusIconDndInfo *dnd_info;
 	int width, height;
 	
+	printf ("dnd_highlight_queue_redraw()\n"); fflush (stdout);
 	dnd_info = NAUTILUS_ICON_CONTAINER (widget)->details->dnd_info;
 	
 	if (!dnd_info->highlighted) {
@@ -1614,9 +1621,11 @@ start_dnd_highlight (GtkWidget *widget)
 
 	if (!dnd_info->highlighted) {
 		dnd_info->highlighted = TRUE;
+		printf ("start_dnd_highlight() is going to connect drag_highlight_expose() to expose_event\n"); fflush (stdout);
 		g_signal_connect_after (widget, "expose_event",
 					G_CALLBACK (drag_highlight_expose),
 					NULL);
+		printf ("start_dnd_highlight() is going to dnd_highlight_queue_redraw()\n"); fflush (stdout);
 		dnd_highlight_queue_redraw (widget);
 	}
 }
@@ -1629,6 +1638,7 @@ stop_dnd_highlight (GtkWidget *widget)
 	dnd_info = NAUTILUS_ICON_CONTAINER (widget)->details->dnd_info;
 
 	if (dnd_info->highlighted) {
+		printf ("stop_dnd_highlight() is going to disconnect drag_highlight_expose() to expose_event\n"); fflush (stdout);
 		g_signal_handlers_disconnect_by_func (widget,
 						      drag_highlight_expose,
 						      NULL);
@@ -1645,21 +1655,30 @@ drag_motion_callback (GtkWidget *widget,
 {
 	int action;
 
+	printf("drag_motion_callback() x=%d, y=%d\n", x, y);fflush(stdout);
+	printf("drag_motion_callback() going to nautilus_icon_container_ensure_drag_data()\n");fflush(stdout);
 	nautilus_icon_container_ensure_drag_data (NAUTILUS_ICON_CONTAINER (widget), context, time);
+	printf("drag_motion_callback() going to nautilus_icon_container_position_shadow()\n");fflush(stdout);
 	nautilus_icon_container_position_shadow (NAUTILUS_ICON_CONTAINER (widget), x, y);
+	printf("drag_motion_callback() going to nautilus_icon_dnd_update_drop_target()\n");fflush(stdout);
 	nautilus_icon_dnd_update_drop_target (NAUTILUS_ICON_CONTAINER (widget), context, x, y);
+	printf("drag_motion_callback() going to set_up_auto_scroll_if_needed()\n");fflush(stdout);
 	set_up_auto_scroll_if_needed (NAUTILUS_ICON_CONTAINER (widget));
 	/* Find out what the drop actions are based on our drag selection and
 	 * the drop target.
 	 */
 	action = 0;
+	printf("drag_motion_callback() going to nautilus_icon_container_get_drop_action()\n");fflush(stdout);
 	nautilus_icon_container_get_drop_action (NAUTILUS_ICON_CONTAINER (widget), context, x, y,
 						 &action);
 	if (action != 0) {
+	printf("drag_motion_callback() going to start_dnd_highlight()\n");fflush(stdout);
 		start_dnd_highlight (widget);
 	}
 	  
+	printf("drag_motion_callback() going to gdk_drag_status()\n");fflush(stdout);
 	gdk_drag_status (context, action, time);
+	printf("drag_motion_callback() going to return\n");fflush(stdout);
 
 	return TRUE;
 }
