diff --git a/ChangeLog b/ChangeLog
index a555a41..537e7dc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-17  Tony Tsui  <tsui.tony@gmail.com>
+
+	* gimmie/gimmie_documents.py (DownloadsSource): Support monitoring of
+	Epiphany download folder. Fixes bug #418015.
+
 2007-03-10  Tony Tsui  <tsui.tony@gmail.com>
 	* gimmie/gimmie_gui.py (FriendlyPager): Don't hide pager if there is
 	only one workspace but viewports are used. Support cycling of viewports
diff --git a/gimmie/gimmie_documents.py b/gimmie/gimmie_documents.py
index 2fd0d88..44f165a 100644
--- a/gimmie/gimmie_documents.py
+++ b/gimmie/gimmie_documents.py
@@ -56,7 +56,13 @@ class DownloadsSource(DirectorySource):
         DirectorySource.__init__(self, path, icon="stock_internet")
 
         self.download_rdf_monitors = {}
-
+        
+        self.ephy_gconf_bridge = GConfBridge("/apps/epiphany/directories/")
+        self.ephy_gconf_bridge.connect("changed::downloads_folder", lambda gb: self._ephy_downloads_folder_changed())
+        self.ephy_reload_event_id = None
+        self.ephy_directory_source = None
+        self._monitor_ephy_downloads_folder()
+        
     def _get_download_rdf_paths(self):
         '''
         Returns a list of paths to Mozilla downloads.rdf files.  It only returns
@@ -65,10 +71,33 @@ class DownloadsSource(DirectorySource):
         '''
         return glob.glob(os.path.expanduser("~/.mozilla/*/*default*/downloads.rdf"))
 
+    def _monitor_ephy_downloads_folder(self):
+        if self.ephy_reload_event_id:
+            self.ephy_directory_source.disconnect(self.ephy_reload_event_id)
+        
+        dir = self.ephy_gconf_bridge.get("downloads_folder", "")
+        
+        # This can occur if Epiphany is not installed.
+        if len(dir) == 0:
+            return
+        
+        self.ephy_directory_source = DirectorySource(dir)
+        self.ephy_reload_event_id = self.ephy_directory_source.connect("reload", lambda x: self.emit("reload"))
+    
+    def _ephy_downloads_folder_changed(self):
+        self._monitor_ephy_downloads_folder()
+        self.emit("reload")
+            
     def get_enabled(self):
-        return DirectorySource.get_enabled(self) or self._get_download_rdf_paths() != []
+        return DirectorySource.get_enabled(self) or \
+               self._get_download_rdf_paths() != [] or \
+               (self.ephy_directory_source and self.ephy_directory_source.get_enabled())
 
     def get_items_uncached(self):
+        if self.ephy_directory_source:
+            for item in self.ephy_directory_source.get_items_uncached():
+                yield item
+        
         for item in DirectorySource.get_items_uncached(self):
             yield item
 
