diff --git a/lib/spack/spack/config.py b/lib/spack/spack/config.py
index 193b311434980a2cea626848493150b55604e2ff..6fecde998017d040224a17b0a371ec600279adb5 100644
--- a/lib/spack/spack/config.py
+++ b/lib/spack/spack/config.py
@@ -357,8 +357,8 @@ def _read_config_file(filename, schema):
         with open(filename) as f:
             data = syaml.load(f)
 
-        validate_section(data, schema)
-
+        if data:
+            validate_section(data, schema)
         return data
 
     except MarkedYAMLError, e:
@@ -514,7 +514,7 @@ def __init__(self, validation_error, data):
         # Try really hard to get the parent (which sometimes is not
         # set) This digs it out of the validated structure if it's not
         # on the validation_error.
-        if not parent_mark:
+        if path and not parent_mark:
             parent_path = list(path)[:-1]
             parent = get_path(parent_path, data)
             if path[-1] in parent: