diff --git a/agkyra/syncer/localfs_client.py b/agkyra/syncer/localfs_client.py
index 4c91fb5adcebf6380ecd7a7cf81c20d8b8139c10..037b85d399c014841b1dd08170d1d0c5d5a845dd 100644
--- a/agkyra/syncer/localfs_client.py
+++ b/agkyra/syncer/localfs_client.py
@@ -76,6 +76,15 @@ def make_dirs(path):
         raise
 
 
+def list_dir(path):
+    try:
+        return os.listdir(path)
+    except OSError as e:
+        if e.errno in [errno.ENOTDIR, errno.ENOENT, errno.EINVAL]:
+            return []
+        raise
+
+
 psutil_open_files = \
     (lambda proc: proc.open_files()) if psutil.version_info[0] >= 2 else \
     (lambda proc: proc.get_open_files())
@@ -166,7 +175,7 @@ def is_actual_path(path):
         prefix, basename = os.path.split(prefix)
         if not basename:
             return True
-        if not basename in os.listdir(prefix):
+        if not basename in list_dir(prefix):
             return False
 
 def get_live_info(settings, path):
@@ -234,7 +243,7 @@ def _get_local_status_from_stats(stats, path):
     if stat.S_ISREG(mode):
         return LOCAL_FILE
     if stat.S_ISDIR(mode):
-        if os.listdir(path):
+        if list_dir(path):
             return LOCAL_NONEMPTY_DIR
         return LOCAL_EMPTY_DIR
     return LOCAL_OTHER