diff --git a/slapos/recipe/request.py b/slapos/recipe/request.py
index ecaad906f4afad5b535f4b7b6f17b6439a71d0c5..99f0a291a2d66cc9b381fbefe531c6b924c843b9 100644
--- a/slapos/recipe/request.py
+++ b/slapos/recipe/request.py
@@ -33,6 +33,12 @@ import traceback
 
 DEFAULT_SOFTWARE_TYPE = 'RootSoftwareInstance'
 
+def getListOption(option_dict, key, default=()):
+  result = option_dict.get(key, default)
+  if isinstance(result, basestring):
+    result = result.split()
+  return result
+
 class Recipe(object):
   """
   Request a partition to a slap master.
@@ -91,18 +97,18 @@ class Recipe(object):
     self.logger = logging.getLogger(name)
     software_url = options['software-url']
     name = options['name']
-    return_parameters = options.get('return', '').split()
+    return_parameters = getListOption(options, 'return')
     if not return_parameters:
       self.logger.debug("No parameter to return to main instance."
         "Be careful about that...")
     software_type = options.get('software-type', DEFAULT_SOFTWARE_TYPE)
     filter_kw = dict(
-      (x, options['sla-' + x]) for x in options.get('sla', '').split()
+      (x, options['sla-' + x]) for x in getListOption(options, 'sla')
       if options['sla-' + x]
     )
     partition_parameter_kw = self._filterForStorage(dict(
       (x, options['config-' + x])
-      for x in options.get('config', '').split()
+      for x in getListOption(options, 'config')
     ))
     slave = options.get('slave', 'false').lower() in \
       librecipe.GenericBaseRecipe.TRUE_VALUES