diff --git a/cinderclient/tests/unit/v2/test_shell.py b/cinderclient/tests/unit/v2/test_shell.py
index bff44ae96..ed6a8e931 100644
--- a/cinderclient/tests/unit/v2/test_shell.py
+++ b/cinderclient/tests/unit/v2/test_shell.py
@@ -399,6 +399,16 @@ class ShellTest(utils.TestCase):
         self.assert_called_anytime('DELETE', '/volumes/1234')
         self.assert_called('DELETE', '/volumes/5678')
 
+    def test_delete_with_cascade_true(self):
+        self.run_command('delete 1234 --cascade')
+        self.assert_called('DELETE', '/volumes/1234?cascade=True')
+        self.run_command('delete --cascade 1234')
+        self.assert_called('DELETE', '/volumes/1234?cascade=True')
+
+    def test_delete_with_cascade_with_invalid_value(self):
+        self.assertRaises(SystemExit, self.run_command,
+                          'delete 1234 --cascade 1234')
+
     def test_backup(self):
         self.run_command('backup-create 1234')
         self.assert_called('POST', '/backups')
diff --git a/cinderclient/v3/shell.py b/cinderclient/v3/shell.py
index 235f9ddbd..880cd6018 100644
--- a/cinderclient/v3/shell.py
+++ b/cinderclient/v3/shell.py
@@ -447,10 +447,8 @@ def do_create(cs, args):
 
 
 @utils.arg('--cascade',
-           metavar='<cascade>',
+           action='store_true',
            default=False,
-           const=True,
-           nargs='?',
            help='Remove any snapshots along with volume. Default=False.')
 @utils.arg('volume',
            metavar='<volume>', nargs='+',