diff --git a/glanceclient/shell.py b/glanceclient/shell.py
index d8998f04..db8d3dd6 100755
--- a/glanceclient/shell.py
+++ b/glanceclient/shell.py
@@ -535,6 +535,7 @@ class OpenStackImagesShell(object):
         # Handle top-level --help/-h before attempting to parse
         # a command off the command line
         if options.help or not argv:
+            parser = _get_subparser(api_version)
             self.do_help(options, parser=parser)
             return 0
 
diff --git a/glanceclient/tests/unit/test_shell.py b/glanceclient/tests/unit/test_shell.py
index 3a636394..3f6b0959 100644
--- a/glanceclient/tests/unit/test_shell.py
+++ b/glanceclient/tests/unit/test_shell.py
@@ -538,9 +538,14 @@ class ShellTest(testutils.TestCase):
         except SystemExit:
             self.fail('Unexpected SystemExit')
 
-        # We expect the normal usage as a result
-        self.assertIn('Command-line interface to the OpenStack Images API',
-                      sys.stdout.getvalue())
+        # We expect the normal v2 usage as a result
+        expected = ['Command-line interface to the OpenStack Images API',
+                    'image-list',
+                    'image-deactivate',
+                    'location-add']
+        for output in expected:
+            self.assertIn(output,
+                          sys.stdout.getvalue())
 
     @mock.patch('glanceclient.v2.client.Client')
     @mock.patch('glanceclient.v1.shell.do_image_list')