--- src/gtk/MainView.cxx.orig
+++ src/gtk/MainView.cxx
@@ -78,5 +78,5 @@
 static void main_window_zoom_width_cb (GtkToggleAction *, gpointer);
 static void main_window_set_page_mode (GtkRadioAction *, GtkRadioAction *, gpointer);
-static void main_window_page_scrolled_cb (GtkWidget *widget, GdkEventScroll *event, gpointer data);
+static gboolean main_window_page_scrolled_cb (GtkWidget *widget, GdkEventScroll *event, gpointer data);
 
 #if defined (HAVE_CUPS)
@@ -1480,5 +1480,5 @@
 }
 
-void 
+gboolean 
 main_window_page_scrolled_cb (GtkWidget *widget, GdkEventScroll *event, gpointer data)
 {
@@ -1487,10 +1487,17 @@
     MainPter *pter = (MainPter *)data;
     // Only zoom when the CTRL-Button is down...
-    if ( !(event->state & GDK_CONTROL_MASK) ) return;
-    if ( event->direction == GDK_SCROLL_UP ) {
-        pter->zoomInActivated ();
-    } else if ( event->direction == GDK_SCROLL_DOWN ) {
-        pter->zoomOutActivated ();
-    }
-}
-
+    if ( GDK_CONTROL_MASK == (event->state & GDK_CONTROL_MASK) )
+    {
+        if ( event->direction == GDK_SCROLL_UP )
+        {
+            pter->zoomInActivated ();
+        }
+        else if ( event->direction == GDK_SCROLL_DOWN )
+        {
+            pter->zoomOutActivated ();
+        }
+        return TRUE;
+    }
+    return FALSE;
+}
+
--- src/gtk/PageView.cxx.orig
+++ src/gtk/PageView.cxx
@@ -528,11 +528,4 @@
     g_assert ( NULL != data && "The data parameter is NULL.");
 
-    // don't scroll when the CRTL-Button is down, because then the page should
-    // actually be zoomed and not scrolled. Zooming is handelt by the MainView
-    // class.
-    if ( event->state & GDK_CONTROL_MASK )
-    {
-        return FALSE;
-    }
     PagePter *pter = (PagePter *)data;
     GtkAdjustment *adjustment = 
