diff --git a/cccli/command/vm.py b/cccli/command/vm.py
index 14dbb4c65bf7ea322e8903b8ab4886d45c857090..9198c91a4f18e068024c4bd7a5378d3e63be51c2 100644
--- a/cccli/command/vm.py
+++ b/cccli/command/vm.py
@@ -86,3 +86,20 @@ class Command_resume(TqlCommand):
             raise cmdBadArgument()
         # rpc call
         self.rpccall("resume", self.args[0])
+
+class Command_undefine(TqlCommand):
+    '''Undefine a stopped vm'''
+
+    def __init__(self, cli, argv0):
+        TqlCommand.__init__(self, cli, argv0)
+        self.tql_filter += "&r=vm&status=stopped"
+        self.add_option("-c", "--clean", action="store_true", dest="clean", default=False,
+                        help="Remove storage")
+
+    def __call__(self, argv):
+        # arg parse
+        self.parse_args(argv)
+        if len(self.args) != 1:
+            raise cmdBadArgument()
+        # rpc call
+        self.rpccall("undefine", self.args[0], self.options.clean)