diff --git a/image_creator/dialog_menu.py b/image_creator/dialog_menu.py
index e32b46c69eea529ff7ef305700fa2678a0bc48c0..f1311899ca739e7cfa774e61fef17a369f8a413e 100644
--- a/image_creator/dialog_menu.py
+++ b/image_creator/dialog_menu.py
@@ -648,9 +648,13 @@ def update_sysprep_param(session, name):
     param = image.os.sysprep_params[name]
 
     while 1:
-        if param.type == "file":
-            title = "Please select a file to use for the `%s' parameter" % name
-            value = select_file(d, ftype="br", title=title)
+        if param.type in ("file", "dir"):
+
+            title = "Please select a %s to use for the `%s' parameter" % \
+                (name, 'file' if param.type == 'file' else 'directory')
+            ftype = "br" if param.type == 'file' else 'd'
+
+            value = select_file(d, ftype=ftype, title=title)
             if value is None:
                 return False
         else:
diff --git a/image_creator/os_type/__init__.py b/image_creator/os_type/__init__.py
index e37291b150971284f28f2a0af6e8a9331542cb0a..630725571b5fb43c49ee8b25c1dc7f075ac9d765 100644
--- a/image_creator/os_type/__init__.py
+++ b/image_creator/os_type/__init__.py
@@ -88,7 +88,8 @@ class SysprepParam(object):
 
         type_checker = {"posint": self._check_posint,
                         "string": self._check_string,
-                        "file": self._check_fname}
+                        "file": self._check_fname,
+                        "dir": self._check_dname}
 
         assert type in type_checker.keys(), "Invalid parameter type: %s" % type
 
@@ -101,6 +102,7 @@ class SysprepParam(object):
         self._checker = type_checker[type]
 
     def set_value(self, value):
+        """Update the value of the parameter"""
         try:
             self.value = self._checker(value)
         except ValueError as e:
@@ -144,6 +146,19 @@ class SysprepParam(object):
 
         raise ValueError("Invalid filename")
 
+    def _check_dname(self, value):
+        """Check if the value is a valid directory"""
+
+        value = str(value)
+        if len(value) == 0:
+            return ""
+
+        import os
+        if os.path.isdir(value):
+            return value
+
+        raise ValueError("Invalid dirname")
+
 
 def add_sysprep_param(name, type, default, descr):
     """Decorator for __init__ that adds the definition for a system preparation