diff --git a/IPython/kernel/zmq/eventloops.py b/IPython/kernel/zmq/eventloops.py
index 835a4e0..70da2ab 100644
--- a/IPython/kernel/zmq/eventloops.py
+++ b/IPython/kernel/zmq/eventloops.py
@@ -209,7 +209,8 @@ loop_map = {
 def enable_gui(gui, kernel=None):
     """Enable integration with a given GUI"""
     if gui not in loop_map:
-        raise ValueError("GUI %r not supported" % gui)
+        e = "Invalid GUI request %r, valid ones are:%s" % (gui, loop_map.keys())
+        raise ValueError(e)
     if kernel is None:
         if Application.initialized():
             kernel = getattr(Application.instance(), 'kernel', None)
diff --git a/IPython/kernel/zmq/zmqshell.py b/IPython/kernel/zmq/zmqshell.py
index 82a4aff..422c0c8 100644
--- a/IPython/kernel/zmq/zmqshell.py
+++ b/IPython/kernel/zmq/zmqshell.py
@@ -503,8 +503,13 @@ class ZMQInteractiveShell(InteractiveShell):
 
     # Over ZeroMQ, GUI control isn't done with PyOS_InputHook as there is no
     # interactive input being read; we provide event loop support in ipkernel
-    from .eventloops import enable_gui
-    enable_gui = staticmethod(enable_gui)
+    @staticmethod
+    def enable_gui(gui):
+        from .eventloops import enable_gui as real_enable_gui
+        try:
+            real_enable_gui(gui)
+        except ValueError as e:
+            raise UsageError("%s" % e)
 
     def init_environment(self):
         """Configure the user's environment.
diff --git a/IPython/terminal/interactiveshell.py b/IPython/terminal/interactiveshell.py
index fb2032d..32a6c17 100644
--- a/IPython/terminal/interactiveshell.py
+++ b/IPython/terminal/interactiveshell.py
@@ -304,7 +304,10 @@ class TerminalInteractiveShell(InteractiveShell):
         """
         # Deferred import
         from IPython.lib.inputhook import enable_gui as real_enable_gui
-        return real_enable_gui(gui, app)
+        try:
+            return real_enable_gui(gui, app)
+        except ValueError as e:
+            raise UsageError("%s" % e)
     
     def __init__(self, config=None, ipython_dir=None, profile_dir=None,
                  user_ns=None, user_module=None, custom_exceptions=((),None),