diff --git a/lib/cli.py b/lib/cli.py
index f8abe44ff6c00bda67228fdb966dddd111f1a9e1..f4f32db5f891ceaa2dc76824026223802dda860c 100644
--- a/lib/cli.py
+++ b/lib/cli.py
@@ -259,20 +259,21 @@ def _SplitKeyVal(opt, data):
   NO_PREFIX = "no_"
   UN_PREFIX = "-"
   kv_dict = {}
-  for elem in data.split(","):
-    if "=" in elem:
-      key, val = elem.split("=", 1)
-    else:
-      if elem.startswith(NO_PREFIX):
-        key, val = elem[len(NO_PREFIX):], False
-      elif elem.startswith(UN_PREFIX):
-        key, val = elem[len(UN_PREFIX):], None
+  if data:
+    for elem in data.split(","):
+      if "=" in elem:
+        key, val = elem.split("=", 1)
       else:
-        key, val = elem, True
-    if key in kv_dict:
-      raise errors.ParameterError("Duplicate key '%s' in option %s" %
-                                  (key, opt))
-    kv_dict[key] = val
+        if elem.startswith(NO_PREFIX):
+          key, val = elem[len(NO_PREFIX):], False
+        elif elem.startswith(UN_PREFIX):
+          key, val = elem[len(UN_PREFIX):], None
+        else:
+          key, val = elem, True
+      if key in kv_dict:
+        raise errors.ParameterError("Duplicate key '%s' in option %s" %
+                                    (key, opt))
+      kv_dict[key] = val
   return kv_dict
 
 
diff --git a/test/ganeti.cli_unittest.py b/test/ganeti.cli_unittest.py
index 29734ae0c2b1575faccc9c0f4f0bf27af5428bc7..b86486bf479936fc60c001c3346b757cf585db12 100755
--- a/test/ganeti.cli_unittest.py
+++ b/test/ganeti.cli_unittest.py
@@ -75,6 +75,10 @@ class TestSplitKeyVal(unittest.TestCase):
       self.failUnlessRaises(ParameterError, cli._SplitKeyVal,
                             "option", data)
 
+  def testEmptyData(self):
+    """Test how we handle splitting an empty string"""
+    self.failUnlessEqual(cli._SplitKeyVal("option", ""), {})
+
 
 class TestToStream(unittest.TestCase):
   """Thes the ToStream functions"""