Index: e17/apps/e/src/bin/e_winlist.c
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_winlist.c,v
retrieving revision 1.37
diff -u -r1.37 e_winlist.c
--- e17/apps/e/src/bin/e_winlist.c	27 Dec 2005 17:16:57 -0000	1.37
+++ e17/apps/e/src/bin/e_winlist.c	3 Jan 2006 15:35:03 -0000
@@ -555,17 +555,17 @@
 	    (e_config->winlist_warp_while_selecting))
 	  { 
 	     warp_to_x = ww->border->x + (ww->border->w / 2); 
-	     if (warp_to_x < 1)
-	       warp_to_x = (ww->border->x + ww->border->w) / 2;
-	     else if (warp_to_x > (ww->border->zone->w - 1))
-	       warp_to_x = ww->border->x + ((ww->border->zone->w - ww->border->x) / 2); 
+	     if (warp_to_x < ww->border->zone->x + 1)
+	       warp_to_x = ww->border->zone->x + ((ww->border->x + ww->border->w - ww->border->zone->x) / 2);
+	     else if (warp_to_x >= (ww->border->zone->x + ww->border->zone->w - 1))
+	       warp_to_x = (ww->border->zone->x + ww->border->zone->w + ww->border->x) / 2; 
      
 	     warp_to_y = ww->border->y + (ww->border->h / 2);
-	     if (warp_to_y < 1)
-	       warp_to_y = (ww->border->y + ww->border->h) / 2;
-	     else if (warp_to_y > (ww->border->zone->h - 1))
-	       warp_to_y = ww->border->y + ((ww->border->zone->h - ww->border->y) / 2); 
+	     if (warp_to_y < ww->border->zone->y + 1)
+	       warp_to_y = ww->border->zone->y + ((ww->border->y + ww->border->h - ww->border->zone-y) / 2);
+	     else if (warp_to_y >= (ww->border->zone->y + ww->border->zone->h - 1))
+	       warp_to_y = (ww->border->zone->y + ww->border->zone->h + ww->border->y) / 2; 
 	  }
 	if (e_config->winlist_warp_while_selecting)
 	  {
 	     ecore_x_pointer_xy_get(winlist->zone->container->win, &warp_x, &warp_y);

