diff --git a/reclass/storage/yaml_fs/directory.py b/reclass/storage/yaml_fs/directory.py
index c085731..c118958 100644
--- a/reclass/storage/yaml_fs/directory.py
+++ b/reclass/storage/yaml_fs/directory.py
@@ -8,6 +8,7 @@
 #
 import os
 import sys
+from reclass.errors import NotFoundError
 
 SKIPDIRS = ( '.git' , '.svn' , 'CVS', 'SCCS', '.hg', '_darcs' )
 FILE_EXTENSION = '.yml'
@@ -20,6 +21,10 @@
 
     def __init__(self, path, fileclass=None):
         ''' Initialise a directory object '''
+        if not os.path.isdir(path):
+            raise NotFoundError('no such directory: %s' % path)
+        if not os.access(path, os.R_OK|os.X_OK):
+            raise NotFoundError('cannot change to or read directory: %s' % path)
         self._path = path
         self._fileclass = fileclass
         self._files = {}
@@ -34,12 +39,9 @@
     files = property(lambda self: self._files)
 
     def walk(self, register_fn=None):
-        def _error(error):
-            raise Exception('{0}: {1} ({2})'.format(error.filename, error.strerror, error.errno))
         if not callable(register_fn): register_fn = self._register_files
         for dirpath, dirnames, filenames in os.walk(self._path,
                                                       topdown=True,
-                                                      onerror=_error,
                                                       followlinks=True):
             vvv('RECURSE {0}, {1} files, {2} subdirectories'.format(
                 dirpath.replace(os.getcwd(), '.'), len(filenames), len(dirnames)))
diff --git a/reclass/storage/yaml_fs/yamlfile.py b/reclass/storage/yaml_fs/yamlfile.py
index 14bee86..a5933f6 100644
--- a/reclass/storage/yaml_fs/yamlfile.py
+++ b/reclass/storage/yaml_fs/yamlfile.py
@@ -9,11 +9,16 @@
 from reclass import datatypes
 import yaml
 import os
+from reclass.errors import NotFoundError
 
 class YamlFile(object):
 
     def __init__(self, path):
         ''' Initialise a yamlfile object '''
+        if not os.path.isfile(path):
+            raise NotFoundError('no such file: %s' % path)
+        if not os.access(path, os.R_OK):
+            raise NotFoundError('cannot open: %s' % path)
         self._path = path
         self._data = dict()
         self._read()
