diff --git a/js/ui/main.js b/js/ui/main.js
index a0287c3..9f43a5d 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -292,24 +292,9 @@ function _removeUnusedWorkspaces() {
 function _globalKeyPressHandler(actor, event) {
     if (modalCount == 0)
         return false;
+    if (event.type() != Clutter.EventType.KEY_RELEASE)
+        return false;
 
-    let type = event.type();
-
-    if (type == Clutter.EventType.KEY_PRESS) {
-        let symbol = event.get_key_symbol();
-        if (symbol == Clutter.Print) {
-            // We want to be able to take screenshots of the shell at all times
-            let gconf = GConf.Client.get_default();
-            let command = gconf.get_string('/apps/metacity/keybinding_commands/command_screenshot');
-            if (command != null && command != '') {
-                let [ok, len, args] = GLib.shell_parse_argv(command);
-                let p = new Shell.Process({'args' : args});
-                p.run();
-            }
-
-            return true;
-        }
-    } else if (type == Clutter.EventType.KEY_RELEASE) {
         let symbol = event.get_key_symbol();
         let keyCode = event.get_key_code();
         let modifierState = Shell.get_event_state(event);
@@ -330,6 +315,15 @@ function _globalKeyPressHandler(actor, event) {
         // This relies on the fact that Clutter.ModifierType is the same as Gdk.ModifierType
         let action = display.get_keybinding_action(symbol, keyCode, modifierState);
         switch (action) {
+        case Meta.KeyBindingAction.COMMAND_SCREENSHOT:
+            let gconf = GConf.Client.get_default();
+            let command = gconf.get_string('/apps/metacity/keybinding_commands/command_screenshot');
+            if (command != null && command != '') {
+                let [ok, len, args] = GLib.shell_parse_argv(command);
+                let p = new Shell.Process({'args' : args});
+                p.run();
+            }
+            return true;
             case Meta.KeyBindingAction.WORKSPACE_LEFT:
                 wm.actionMoveWorkspaceLeft();
                 return true;
@@ -341,7 +335,6 @@ function _globalKeyPressHandler(actor, event) {
                 getRunDialog().open();
                 return true;
         }
-    }
 
     return false;
 }
