Index: gimmie-TRUNK/gimmie_applications.py
===================================================================
--- gimmie-TRUNK.orig/gimmie_applications.py
+++ gimmie-TRUNK/gimmie_applications.py
@@ -384,7 +384,7 @@ class RecentLaunchers(RecentlyUsed):
         RecentlyUsed.__init__(self, name, icon)
         
     def include_recent_item(self, item):
-        return item.in_group("Launchers")
+        return item.has_group("Launchers")
 
     def get_items(self):
         launchers = []
Index: gimmie-TRUNK/gimmie_documents.py
===================================================================
--- gimmie-TRUNK.orig/gimmie_documents.py
+++ gimmie-TRUNK/gimmie_documents.py
@@ -66,7 +66,7 @@ class RecentDocuments(RecentlyUsed):
         RecentlyUsed.__init__(self, name, icon)
 
     def include_recent_item(self, item):
-        return not item.in_group("Launchers") \
+        return not item.has_group("Launchers") \
                and item.get_mime_type() not in ("x-directory/normal",
                                                 "x-tomboy/note", # FIXME: Is this needed?
                                                 "application/octet-stream") \
@@ -284,7 +284,7 @@ class DocumentsTopic(Topic):
         menu_item = gtk.ImageMenuItem(name)
         menu_item.set_image(icon_factory.load_image(icon_name, gtk.ICON_SIZE_LARGE_TOOLBAR))
         menu_item.show()
-        menu_item.connect("activate", lambda mi, uri: launcher.launch_uri(uri), uri)
+        menu_item.connect("activate", lambda mi, uri: launcher.launch_uri(uri, "x-directory/normal"), uri)
         return menu_item
 
     def _add_places(self, menu):
Index: gimmie-TRUNK/gimmie_file.py
===================================================================
--- gimmie-TRUNK.orig/gimmie_file.py
+++ gimmie-TRUNK/gimmie_file.py
@@ -123,8 +123,8 @@ class FileItem(Item):
 
     def get_seen_timestamp(self):
         try:
-            return recent_model.get_item(self.get_uri()).get_timestamp()
-        except KeyError:
+            return recent_model.lookup_item(self.get_uri()).get_visited()
+        except gobject.GError:
             return 0
 
     def get_modified_timestamp(self):
@@ -143,9 +143,7 @@ class FileItem(Item):
             return self.ensure_file_info().mime_type
         except (ValueError, AttributeError):
             try:
-                # FIXME: Lookup based on name, not mapped by python gnome-vfs
-                # bindings yet.
-                return str(xdg.Mime.get_type_by_name(self.get_uri()))
+                return gnomevfs.get_mime_type(self.get_uri())
             except NameError:
                 return None
 
Index: gimmie-TRUNK/gimmie_recent.py
===================================================================
--- gimmie-TRUNK.orig/gimmie_recent.py
+++ gimmie-TRUNK/gimmie_recent.py
@@ -17,14 +17,14 @@ class RecentlyUsed(ItemSource):
     def __init__(self, name, icon = "gnome-fs-directory"):
         ItemSource.__init__(self, name, icon)
         
-        recent_model.connect("changed", lambda m, l: self.emit("reload"))
+        recent_model.connect("changed", lambda m: self.emit("reload"))
 
     def do_reload(self):
         recent_items = []
 
-        for item in recent_model.get_list():
+        for item in recent_model.get_items():
             # skip private items (like porn)
-            if item.get_private():
+            if item.get_private_hint():
                 continue
             
             # skip deleted local files
@@ -34,7 +34,7 @@ class RecentlyUsed(ItemSource):
 
             # check whether to include this item
             if self.include_recent_item(item):
-                recent_item = FileItem(item.get_uri(), item.get_timestamp())
+                recent_item = FileItem(item.get_uri(), item.get_modified())
                 recent_items.append(recent_item)
 
         ### Uncomment to sort by most recently used
Index: gimmie-TRUNK/gimmie_util.py
===================================================================
--- gimmie-TRUNK.orig/gimmie_util.py
+++ gimmie-TRUNK/gimmie_util.py
@@ -14,8 +14,6 @@ import gnome.ui
 import gnomevfs
 import gconf
 
-import egg
-
 import gimmie_globals
 
 
@@ -502,29 +500,29 @@ class LaunchManager:
     DESKTOP_STARTUP_IDs.
     '''
     
-    def make_egg_recent(self, uri, mimetype):
-        recent_item = egg.RecentItem(uri)
-        if mimetype:
-            recent_item.set_mime_type(mimetype)
-        recent_item.set_timestamp(int(time.time()))
-        recent_item.add_group("GimmieWasHere")
-        return recent_item
+    def make_recent_metadata(self, mimetype, command):
+        metadata = { "mime_type" : mimetype,
+                     "app_name" : "gimmie",
+                     "app_exec" : command,
+                     "groups" : ["GimmieWasHere"]
+                   }
+        return metadata
 
-    def launch_uri(self, uri, mimetype = None):
+    def launch_uri(self, uri, mimetype):
         assert uri, "Must specify URI to launch"
-        
+        command = "gnome-open"
         child = os.fork()
         if not child:
             # Inside forked child
             os.setsid()
             os.environ['GIMMIE_LAUNCHER'] = uri
             os.environ['DESKTOP_STARTUP_ID'] = self.make_startup_id(uri)
-            os.spawnlp(os.P_NOWAIT, "gnome-open", "gnome-open", uri)
+            os.spawnlp(os.P_NOWAIT, command, command, uri)
             os._exit(0)
         else:
             os.wait()
-            recent_item = self.make_egg_recent(uri, mimetype)
-            recent_model.add_full(recent_item)
+            metadata = self.make_recent_metadata(mimetype, command)
+            recent_model.add_full(uri, metadata)
         return child
 
     def get_local_path(self, uri):
@@ -607,9 +605,10 @@ class LaunchManager:
         else:
             os.wait()
             if launcher_uri:
-                recent_item = self.make_egg_recent(launcher_uri, "application/x-desktop")
-                recent_item.add_group("Launchers")
-                recent_model.add_full(recent_item)
+                metadata = self.make_recent_metadata("application/x-desktop",
+                                                     command)
+                metadata["groups"].append("Launchers")
+                recent_model.add_full(launcher_uri, metadata)
             return (child, startup_id)
 
 
@@ -745,34 +744,6 @@ class PlacesManager(gobject.GObject):
     def get_places(self):
         return self._places
 
-
-class RecentlyUsedManager(egg.RecentModel):
-    def __init__(self):
-        egg.RecentModel.__init__(self, egg.RECENT_MODEL_SORT_MRU)
-        # FIXME: EggRecentModel only sends changes if item limit is set
-        self.set_limit(1000000)
-
-        self.recent_items = {}
-        self.connect("changed", lambda m, l: self._model_changed)
-        self._model_changed()
-
-    def _model_changed(self):
-        self.recent_items = {}
-        for recent_item in self.get_list():
-            self.recent_items[recent_item.get_uri()] = recent_item
-
-    def add_full(self, item):
-        # FIXME: Work around egg recent not signalling for in-process adds.
-        self.recent_items[item.get_uri()] = item
-        egg.RecentModel.add_full(self, item)
-
-    def get_item(self, uri):
-        # Usually, we're given a file path, but maybe not always
-        if uri[0] == '/':
-            uri = 'file://' + uri
-        return self.recent_items[uri]
-
-
 class ImplementMe(gtk.MessageDialog):
     '''
     A fun helper that will pop up a "Not Implemented" dialog, and point towards
@@ -919,7 +890,7 @@ thumb_factory = gnome.ui.ThumbnailFactor
 
 launcher = LaunchManager()
 
-recent_model = RecentlyUsedManager()
+recent_model = gtk.recent_manager_get_default()
 
 bookmarks = BookmarkManager()
 places = PlacesManager()
Index: gimmie-TRUNK/gimmie_computer.py
===================================================================
--- gimmie-TRUNK.orig/gimmie_computer.py
+++ gimmie-TRUNK/gimmie_computer.py
@@ -569,17 +569,17 @@ class PrinterItem(Item):
         uri = self.get_uri()
         if uri:
             try:
-                return recent_model.get_item(uri).get_timestamp()
-            except KeyError:
+                return recent_model.lookup_item(uri).get_modified()
+            except gobject.GError:
                 pass
         return 0
 
     def do_open(self):
         launcher.launch_command("gnome-cups-manager --view \"%s\"" % self.printer.get_name())
         
-        recent_item = launcher.make_egg_recent(self.get_uri(), "x-gimmie/printer")
-        recent_item.add_group("Printer")
-        recent_model.add_full(recent_item)
+        metadata = launcher.make_recent_metadata("x-gimmie/printer", "gnome-cups-manager")
+        metadata["groups"].append("Printer")
+        recent_model.add_full(self.get_uri(), metadata)
 
     def _open_properties(self):
         launcher.launch_command("gnome-cups-manager --properties \"%s\"" % self.printer.get_name())
@@ -653,8 +653,8 @@ class RemoteMountItem(Item):
 
     def get_timestamp(self):
         try:
-            return recent_model.get_item(self.get_uri()).get_timestamp()
-        except KeyError:
+            return recent_model.lookup_item(self.get_uri()).get_modified()
+        except gobject.GError:
             return 0
 
     def get_comment(self):
@@ -666,8 +666,8 @@ class RemoteMountItem(Item):
     def do_open(self):
         launcher.launch_command("nautilus %s" % self.get_uri())
 
-        recent_item = launcher.make_egg_recent(self.get_uri(), "application/octet-stream")
-        recent_model.add_full(recent_item)
+        metadata = launcher.make_recent_metadata("application/octet-stream", "nautilus")
+        recent_model.add_full(self.get_uri(), metadata)
 
 
 class BonjourSource(ItemSource):
Index: gimmie-TRUNK/configure.in
===================================================================
--- gimmie-TRUNK.orig/configure.in
+++ gimmie-TRUNK/configure.in
@@ -31,8 +31,8 @@ AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(c
 # Check for pygtk, gnome-python, and gnome-python-extras
 #
 PKG_CHECK_MODULES(GIMMIE, 
-		  gtk+-2.0 >= 2.6
-		  pygtk-2.0 >= 2.6
+		  gtk+-2.0 >= 2.10
+		  pygtk-2.0 >= 2.10
 		  pygobject-2.0 >= 2.6
 		  gnome-python-2.0 >= 2.10
 		  gnome-desktop-2.0 >= 2.10
