Index: src/window.c
===================================================================
--- src/window.c	(revision 3358)
+++ src/window.c	(working copy)
@@ -2783,9 +2783,19 @@
   /* Get window on current or given workspace */
   if (workspace == NULL)
     workspace = window->screen->active_workspace;
-  if (!meta_window_located_on_workspace (window, workspace))
-    meta_window_change_workspace (window, workspace);
-  
+  /* We only move non-normal windows; see http://bugzilla.gnome.org/show_bug.cgi?id=482354 */
+  if (window->type == META_WINDOW_NORMAL
+      && !meta_window_located_on_workspace (window, workspace)) 
+    {
+      window->wm_state_demands_attention = TRUE;
+      set_net_wm_state (window);	
+      return;
+    }
+  else if (!meta_window_located_on_workspace (window, workspace))
+    {
+      meta_window_change_workspace (window, workspace);
+    }
+
   if (window->shaded)
     meta_window_unshade (window, timestamp);
 
