diff -rup ../libwnck-2.10.0-orig/libwnck/tasklist.c ./libwnck/tasklist.c
--- ../libwnck-2.10.0-orig/libwnck/tasklist.c	2005-02-28 08:28:20.000000000 +0100
+++ ./libwnck/tasklist.c	2005-07-14 17:03:29.000000000 +0200
@@ -1413,6 +1413,38 @@ wnck_tasklist_set_screen (WnckTasklist *
   wnck_tasklist_connect_screen (tasklist, screen);
 }
 
+static gboolean
+wnck_tasklist_scroll_cb (WnckTasklist *tasklist,
+                         GdkEventScroll *event,
+                         gpointer user_data)
+{
+  GList *window;
+  window = g_list_find(tasklist->priv->windows, tasklist->priv->active_task);
+
+  switch (event->direction)
+    {
+      case GDK_SCROLL_DOWN:
+      case GDK_SCROLL_LEFT:
+        if (window)
+          window = window->prev;
+        else
+          window = g_list_last(tasklist->priv->windows);
+      break;
+      case GDK_SCROLL_UP:
+      case GDK_SCROLL_RIGHT:
+        if (window)
+          window = window->next;
+        else
+          window = tasklist->priv->windows;
+      break;
+    }
+
+  if (window)
+    wnck_tasklist_activate_task_window(window->data, event->time);
+  
+  return TRUE;
+}
+
 GtkWidget*
 wnck_tasklist_new (WnckScreen *screen)
 {
@@ -1426,6 +1458,12 @@ wnck_tasklist_new (WnckScreen *screen)
 
   wnck_tasklist_set_screen (tasklist, screen);
 
+  /* callback when there is a scroll-event for switching to the next window  */
+  g_signal_connect_object (G_OBJECT (tasklist), "scroll-event",
+                           G_CALLBACK (wnck_tasklist_scroll_cb),
+                           G_OBJECT (tasklist),
+                           0);
+
   return GTK_WIDGET (tasklist);
 }
