--- compiz.orig/plugins/switcher.c	2006-02-12 22:00:50.000000000 +0000
+++ compiz/plugins/switcher.c	2006-02-15 23:11:44.000000000 +0000
@@ -377,6 +377,7 @@
 static Bool
 isSwitchWin (CompWindow *w)
 {
+    int workspaceX, winRealX, winWorkspace;
     SWITCH_SCREEN (w->screen);
 
     if (!w->mapNum || w->attrib.map_state != IsViewable)
@@ -391,6 +392,14 @@
     if (w->state & CompWindowStateSkipPagerMask)
 	return FALSE;
 
+    /* only switch between windows in the current workspace
+       Tiago Sousa <mirage@kaotik.org> */
+    workspaceX = w->screen->width * w->screen->x;
+    winRealX = w->serverX + workspaceX;
+    winWorkspace = floor((double)winRealX / (double)w->screen->width);
+    if (winWorkspace != w->screen->x)
+	return FALSE;
+
     return TRUE;
 }
 
