diff --git a/reviewboard/manage.py b/reviewboard/manage.py
--- a/reviewboard/manage.py
+++ b/reviewboard/manage.py
@@ -100,6 +100,11 @@ def check_dependencies():
     except ImportError:
         dependency_warning('hg not found.  Mercurial integration will not work.')
 
+    try:
+        imp.find_module('bzrlib')
+    except ImportError:
+        dependency_warning('bzrlib not found.  Bazaar integration will not work.')
+
     for check_func in (checks.get_can_enable_search,
                        checks.get_can_enable_syntax_highlighting):
         success, reason = check_func()
diff --git a/reviewboard/scmtools/bzr.py b/reviewboard/scmtools/bzr.py
--- a/reviewboard/scmtools/bzr.py
+++ b/reviewboard/scmtools/bzr.py
@@ -5,7 +5,7 @@ import urlparse
 
 try:
     from bzrlib import bzrdir, revisionspec
-    from bzrlib.errors import NotBranchError
+    from bzrlib.errors import BzrError, NotBranchError
 except ImportError:
     pass
 
@@ -50,12 +50,15 @@ class BZRTool(SCMTool):
         branch = None
         try:
             try:
-                tree, branch, relpath = bzrdir.BzrDir.open_containing_tree_or_branch(filepath)
+                branch, relpath = bzrdir.BzrDir.open_containing_tree_or_branch(filepath)[1:]
                 branch.lock_read()
-                fileid = tree.path2id(relpath)
                 revtree = revisionspec.RevisionSpec.from_string(revspec).as_tree(branch)
-                contents = revtree.get_file_text(fileid)
-            except Exception, e:
+                fileid = revtree.path2id(relpath)
+                if fileid:
+                    contents = revtree.get_file_text(fileid)
+                else:
+                    contents = ""
+            except BzrError, e:
                 raise SCMError(e)
         finally:
             if branch:
@@ -77,14 +80,19 @@ class BZRTool(SCMTool):
 
     def _get_full_path(self, path, basedir=None):
         """Returns the full path to a file."""
-        parts = [self.repository.path.strip("/")]
+        parts = [self.repository.path.rstrip("/")]
 
         if basedir:
             parts.append(basedir.strip("/"))
 
         parts.append(path.strip("/"))
 
-        return "/".join(parts)
+        final_path = "/".join(parts)
+
+        if final_path.startswith("/"):
+            final_path = "file://%s" % final_path
+
+        return final_path
 
     def _revspec_from_revision(self, revision):
         """Returns a revspec based on the revision found in the diff.
diff --git a/reviewboard/templates/admin/scmtools/repository/change_form.html b/reviewboard/templates/admin/scmtools/repository/change_form.html
--- a/reviewboard/templates/admin/scmtools/repository/change_form.html
+++ b/reviewboard/templates/admin/scmtools/repository/change_form.html
@@ -6,7 +6,7 @@
 {% block extrahead %}
 {{block.super}}
 <script type="text/javascript" src="{{MEDIA_URL}}djblets/js/jquery-1.3.2.min.js"></script>
-<script type="text/javascript" src="{{MEDIA_URL}}rb/js/repositoryform.js?{{MEDIA_SERIAL}"></script>
+<script type="text/javascript" src="{{MEDIA_URL}}rb/js/repositoryform.js?{{MEDIA_SERIAL}}"></script>
 
 <script type="text/javascript">
   var BUG_TRACKER_FIELDS = { {% spaceless %}
