diff --git a/storage/yaml_fs/tests/nodes/null.yml b/storage/yaml_fs/tests/nodes/null.yml
new file mode 100644
index 0000000..eae0e02
--- /dev/null
+++ b/storage/yaml_fs/tests/nodes/null.yml
@@ -0,0 +1,3 @@
+classes:
+applications:  # null-value must be handled
+parameters:
diff --git a/storage/yaml_fs/tests/test_yamlfile.py b/storage/yaml_fs/tests/test_yamlfile.py
index ff074c7..1700f30 100644
--- a/storage/yaml_fs/tests/test_yamlfile.py
+++ b/storage/yaml_fs/tests/test_yamlfile.py
@@ -12,6 +12,7 @@
 
 TESTFILE = os.path.join(sys.path[0], 'nodes', 'blue.yml')
 EMPTYFILE = os.path.join(sys.path[0], 'nodes', 'empty.yml')
+NULLFILE = os.path.join(sys.path[0], 'nodes', 'null.yml')
 
 class TestYamlFile:
 
@@ -45,3 +46,13 @@
         assert len(e.parameters) == 0
         assert isinstance(e.applications, Applications)
         assert len(e.applications) == 0
+
+    def test_null_file(self):
+        e = yamlfile.YamlFile(NULLFILE).entity
+        assert isinstance(e, Entity)
+        assert isinstance(e.classes, Classes)
+        assert len(e.classes) == 0
+        assert isinstance(e.parameters, Parameters)
+        assert len(e.parameters) == 0
+        assert isinstance(e.applications, Applications)
+        assert len(e.applications) == 0
diff --git a/storage/yaml_fs/yamlfile.py b/storage/yaml_fs/yamlfile.py
index ee69b0a..2a8b21a 100644
--- a/storage/yaml_fs/yamlfile.py
+++ b/storage/yaml_fs/yamlfile.py
@@ -26,9 +26,21 @@
         fp.close()
 
     def _get_entity(self):
-        classes = datatypes.Classes(self._data.get('classes', []))
-        applications = datatypes.Applications(self._data.get('applications', []))
-        parameters = datatypes.Parameters(self._data.get('parameters', {}))
+        classes = self._data.get('classes')
+        if classes is None:
+            classes = []
+        classes = datatypes.Classes(classes)
+
+        applications = self._data.get('applications')
+        if applications is None:
+            applications = []
+        applications = datatypes.Applications(applications)
+
+        parameters = self._data.get('parameters')
+        if parameters is None:
+            parameters = {}
+        parameters = datatypes.Parameters(parameters)
+
         return datatypes.Entity(classes, applications, parameters)
     entity = property(lambda self: self._get_entity())
 
