diff --git a/scripts/gnt-instance b/scripts/gnt-instance
index 1ee42a3d4972c6ecd67f01743deeaa681d1d4e08..239fc3d06ba07f899fb8fdb66f73ac58633d73fb 100755
--- a/scripts/gnt-instance
+++ b/scripts/gnt-instance
@@ -1182,19 +1182,21 @@ def SetInstanceParams(opts, args):
     return 1
 
   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])
+    if isinstance(opts.beparams[param], basestring):
+      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
+    if isinstance(opts.hypervisor[param], basestring):
+      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: