diff --git a/scripts/gnt-instance b/scripts/gnt-instance
index 8fa6b1dc8bdb71f0e7c3329f82e2a8a3d9c61040..ac616f65532bcc9d07e2f9d3a5245faf65ec3c03 100755
--- a/scripts/gnt-instance
+++ b/scripts/gnt-instance
@@ -1046,9 +1046,20 @@ def SetInstanceParams(opts, args):
     ToStderr("Please give at least one of the parameters.")
     return 1
 
-  if constants.BE_MEMORY in opts.beparams:
-    opts.beparams[constants.BE_MEMORY] = utils.ParseUnit(
-      opts.beparams[constants.BE_MEMORY])
+  for param in opts.beparams:
+    if opts.beparams[param].lower() == "default":
+      opts.beparams[param] = constants.VALUE_DEFAULT
+    elif opts.beparams[param].lower() == "none":
+      opts.beparams[param] = constants.VALUE_NONE
+    elif param == constants.BE_MEMORY:
+      opts.beparams[constants.BE_MEMORY] = \
+        utils.ParseUnit(opts.beparams[constants.BE_MEMORY])
+
+  for param in opts.hypervisor:
+    if opts.hypervisor[param].lower() == "default":
+      opts.hypervisor[param] = constants.VALUE_DEFAULT
+    elif opts.hypervisor[param].lower() == "none":
+      opts.hypervisor[param] = constants.VALUE_NONE
 
   for idx, (nic_op, nic_dict) in enumerate(opts.nics):
     try: