diff --git a/data/solang-enlarged-renderer.ui b/data/solang-enlarged-renderer.ui
index 58346b3..0efe0a2 100644
--- a/data/solang-enlarged-renderer.ui
+++ b/data/solang-enlarged-renderer.ui
@@ -46,4 +46,5 @@
 	<accelerator action="AccelViewEnlargedZoomIn2"/>
 	<accelerator action="AccelViewEnlargedZoomOut"/>
 	<accelerator action="AccelViewEnlargedZoomOut1"/>
+	<accelerator action="AccelQuitEnlarged"/>
 </ui>
diff --git a/src/renderer/enlarged-renderer.cpp b/src/renderer/enlarged-renderer.cpp
index 2508f63..5493523 100644
--- a/src/renderer/enlarged-renderer.cpp
+++ b/src/renderer/enlarged-renderer.cpp
@@ -76,27 +76,7 @@ image_view_on_button_press_event(GtkImageView * view,
 
     if (event->button == 1 && event->type == GDK_2BUTTON_PRESS)
     {
-        enlarged_renderer->go_back_to_browser();
-    }
-}
-
-static void
-image_view_on_key_press_event(GtkImageView * view,
-                           GdkEventKey * event,
-                           gpointer user_data) throw()
-{
-    if (0 == user_data)
-    {
-        g_warning("Not an instance of EnlargedRenderer");
-        return;
-    }
-
-    EnlargedRenderer * enlarged_renderer
-        = static_cast<EnlargedRenderer *>(user_data);
-
-    if (event->keyval == GDK_Escape)
-    {
-        enlarged_renderer->go_back_to_browser();
+        enlarged_renderer->quit_enlarged();
     }
 }
 
@@ -273,7 +253,7 @@ EnlargedRenderer::on_pixbuf_maker_async_ready(
 
         if (GDK_IS_WINDOW(window))
         {
-            int events = GDK_BUTTON_PRESS_MASK || GDK_KEY_PRESS_MASK;
+            int events = GDK_BUTTON_PRESS_MASK;
             gdk_window_set_events(window,
                 static_cast<GdkEventMask>(events));
         }
@@ -316,11 +296,6 @@ EnlargedRenderer::on_pixbuf_maker_async_ready(
                          G_CALLBACK(image_view_on_button_press_event),
                          this);
 
-        g_signal_connect(GTK_IMAGE_VIEW(imageView_),
-                         "key-press-event",
-                         G_CALLBACK(image_view_on_key_press_event),
-                         this);
-
     }
 
     if (0 == imageScrollWin_)
@@ -552,6 +527,13 @@ EnlargedRenderer::create_action_group() throw()
         Gtk::AccelKey("KP_Subtract"),
         sigc::mem_fun(*this,
                       &EnlargedRenderer::on_action_view_zoom_out));
+
+    actionGroup_->add(
+        Gtk::Action::create(
+            "AccelQuitEnlarged", Gtk::StockID()),
+        Gtk::AccelKey("Escape"),
+        sigc::mem_fun(*this,
+                      &EnlargedRenderer::quit_enlarged));
 }
 
 PhotoList
@@ -1008,7 +990,7 @@ EnlargedRenderer::prepare_for_first_use() throw()
     firstUse_ = false;
 }
 
-void EnlargedRenderer::go_back_to_browser() throw()
+void EnlargedRenderer::quit_enlarged() throw()
 {
     RendererRegistry & renderer_registry
      = application_->get_renderer_registry();
diff --git a/src/renderer/enlarged-renderer.h b/src/renderer/enlarged-renderer.h
index 4547845..e58934b 100644
--- a/src/renderer/enlarged-renderer.h
+++ b/src/renderer/enlarged-renderer.h
@@ -85,7 +85,7 @@ class EnlargedRenderer :
                          const IRendererPtr & renderer) throw();
 
         virtual void
-        go_back_to_browser() throw();
+        quit_enlarged() throw();
 
     protected:
         void
