--- metacity-2.20.0/src/window.c	2007-08-31 15:48:55.000000000 -0400
+++ metacity-2.20.0/src/window.c.new	2007-11-08 01:50:37.000000000 -0500
@@ -2742,6 +2742,7 @@
                  MetaWorkspace  *workspace)
 {
   gboolean can_ignore_outdated_timestamps;
+  gboolean located_on_workspace;
   meta_topic (META_DEBUG_FOCUS,
               "_NET_ACTIVE_WINDOW message sent for %s at time %u "
               "by client type %u.\n",
@@ -2783,8 +2784,15 @@
   /* 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);
+
+  located_on_workspace = meta_window_located_on_workspace (window, workspace);
+  /* Non-transient windows never move workspaces.  See http://bugzilla.gnome.org/show_bug.cgi?id=482354 */
+  if (!located_on_workspace && !window->xtransient_for) 
+    {
+      window->wm_state_demands_attention = TRUE;
+      set_net_wm_state (window);	
+      return;
+    }
   
   if (window->shaded)
     meta_window_unshade (window, timestamp);
