diff -r a29b790c7bc8 pida/services/filemanager/filemanager.py
--- a/pida/services/filemanager/filemanager.py	Tue Apr 29 23:29:30 2008 +0200
+++ b/pida/services/filemanager/filemanager.py	Tue May 06 22:41:06 2008 +0200
@@ -235,8 +235,31 @@ class FilemanagerView(PidaView):
         self.file_list.clear()
         self.entries.clear()
 
-        for lister in self.svc.features('file_lister'):
-            GeneratorTask(lister, self.add_or_update_file).start(self.path)
+        def work(basepath):
+            dircontent = listdir(basepath)
+            # Take the first lister only because many listers might conflict
+            try:
+                lister = self.svc.features('file_lister').next()
+            except:
+                lister = None
+            # add all from lister and remove the corresponding items from
+            # dircontent
+            if (lister is not None):
+                for item in lister(basepath):
+                    try:
+                        dircontent.remove(item[0])
+                    except:
+                        pass
+                    yield item
+            # handle remaining files
+            for filename in dircontent:
+                if (path.isdir(path.join(basepath, filename))):
+                    state = 'normal'
+                else:
+                    state = 'unknown'
+                yield filename, basepath, state
+
+        GeneratorTask(work, self.add_or_update_file).start(self.path)
 
         self.create_ancest_tree()
 
@@ -411,7 +434,6 @@ class FilemanagerFeatureConfig(FeaturesC
 
     def subscribe_foreign_features(self):
         self.subscribe_feature('file_hidden_check', self.svc.check_hidden_regex)
-        self.subscribe_feature('file_lister', self.svc.file_lister)
 
         self.subscribe_foreign_feature('contexts', 'file-menu',
             (self.svc.get_action_group(), 'filemanager-file-menu.xml'))
@@ -650,10 +672,6 @@ class Filemanager(Service):
         else:
             return re.match(_re, name) is None
 
-    def file_lister(self, basepath):
-        for name in listdir(basepath):
-            yield name, basepath, 'normal'
-
     def rename_file(self, old, new, basepath):
         pass
 
