diff -dPNur trac-bzr.orig/bzrplugin/commands.py trac-bzr.ds/bzrplugin/commands.py
--- trac-bzr.orig/bzrplugin/commands.py	2013-11-02 20:12:37.000000000 +0100
+++ trac-bzr.ds/bzrplugin/commands.py	2013-11-03 07:35:56.000000000 +0100
@@ -69,7 +69,10 @@
         env = Environment(trac_project)
         db_cnx = env.get_db_cnx()
 
-        revids = [r for r in b.repository.get_ancestry(b.last_revision()) if r]
+	graph = b.repository.get_graph()
+	ancestry = [r for (r, ps) in graph.iter_ancestry([b.last_revision()]) if ps is not None]
+        revids = [r for r in ancestry if r]
+#        revids = [r for r in b.repository.get_ancestry(b.last_revision()) if r]
         for i, rev in enumerate(b.repository.get_revisions(revids)):
             if not 'bugs' in rev.properties:
                 continue
diff -dPNur trac-bzr.orig/tracbzr/backend.py trac-bzr.ds/tracbzr/backend.py
--- trac-bzr.orig/tracbzr/backend.py	2013-11-02 20:12:37.000000000 +0100
+++ trac-bzr.ds/tracbzr/backend.py	2013-11-03 10:36:41.000000000 +0100
@@ -80,7 +80,8 @@
  
 
 from bzrlib import (
-    branch as bzrlib_branch, 
+    branch as bzrlib_branch,
+    revision as _mod_revision,
     bzrdir, 
     errors, 
     inventory, 
@@ -665,9 +666,10 @@
                 return None
             return prev[1]
         branch, revid = self._parse_rev(rev)
+        graph = branch.repository.get_graph()
         if revid in (NULL_REVISION, CURRENT_REVISION) or branch is None:
             return None
-        ancestry = iter(branch.repository.iter_reverse_revision_history(revid))
+        ancestry = iter(graph.iter_lefthand_ancestry(revid, (_mod_revision.NULL_REVISION,)))
         ancestry.next()
         try:
             return self.string_rev(branch, ancestry.next())
@@ -920,7 +947,8 @@
             bpath = self.bzr_repo.branch_path(self.branch)
             if self.path == '' or bpath.startswith(self.path + '/'):
                 repo = self.branch.repository
-                ancestry = repo.iter_reverse_revision_history(self.revid)
+                graph = repo.get_graph()
+                ancestry = graph.iter_lefthand_ancestry(self.revid, (_mod_revision.NULL_REVISION,))
                 ancestry = iter(ancestry)
                 for rev_id in ancestry:
                     yield (self.path,
@@ -1043,7 +1071,8 @@
 
         # Aways use a linear view of our ancestry.
         repo = self.branch.repository
-        ancestry = repo.iter_reverse_revision_history(current_revid)
+        graph = repo.get_graph()
+        ancestry = graph.iter_lefthand_ancestry(current_revid, (_mod_revision.NULL_REVISION,))
         ancestry = iter(ancestry)
         # ancestry now iterates from current_revid down to revno 1
 
@@ -1485,7 +1514,9 @@
         """Lazily fill cache only when needed."""
         if self.revcache is None:
             revid = self.revisiontree.get_revision_id()
-            ancestry = self.branch.repository.get_ancestry(revid)
+            graph = self.branch.repository.get_graph()
+            ancestry = [r for (r, ps) in graph.iter_ancestry([revid]) if ps is not None]
+            #ancestry = self.branch.repository.get_ancestry(revid)
             ancestry.reverse()
             ancestry_idx = dict((r, n) for n, r in enumerate(ancestry))
             self.revcache = {}
