diff --git a/contrib/internal/pyflakes.exclude b/contrib/internal/pyflakes.exclude
index 5189d15eb0964f2778559a552b37d8e541ae8db0..8aa793fc139e7e9bc3d654e301e3c2881353e08b 100644
--- a/contrib/internal/pyflakes.exclude
+++ b/contrib/internal/pyflakes.exclude
@@ -16,6 +16,7 @@ reviewboard/reviews/ui/markdownui.py:*: redefinition of unused 'StringIO' from l
 reviewboard/scmtools/clearcase.py:*: redefinition of unused 'cpath' from line *
 reviewboard/scmtools/git.py:*: redefinition of unused 'urllib_quote' from line *
 reviewboard/scmtools/hg.py:*: redefinition of unused 'urllib_quote' from line *
+reviewboard/scmtools/svn/__init__.py:*: redefinition of unused 'Client' from line *
 reviewboard/scmtools/tests.py:*: redefinition of unused 'md5' from line *
 reviewboard/scmtools/tests.py:*: redefinition of unused 'P4Error' from line *
 reviewboard/settings.py:*: 'from settings_local import *' used; unable to detect undefined names
diff --git a/docs/manual/docsmanage.py b/docs/manual/docsmanage.py
index d8ac23ea575a5710b25bdecd9c984ce1605b9945..8811d5dcc3e316d1867d0f8407b1f07e0b5f6742 100755
--- a/docs/manual/docsmanage.py
+++ b/docs/manual/docsmanage.py
@@ -5,7 +5,6 @@ import sys
 sys.path.insert(0, os.path.join(__file__, "..", ".."))
 sys.path.insert(0, os.path.dirname(__file__))
 
-from reviewboard import settings
 from django.core.management import execute_from_command_line
 
 
diff --git a/reviewboard/accounts/evolutions/profile_show_closed.py b/reviewboard/accounts/evolutions/profile_show_closed.py
index 7f6ef3588c71c5cd5c7323e3602ca1adbb1a6cc8..a8b1d3f6482d8f4fa57d927a255357d97eaa866c 100644
--- a/reviewboard/accounts/evolutions/profile_show_closed.py
+++ b/reviewboard/accounts/evolutions/profile_show_closed.py
@@ -1,5 +1,4 @@
 from django_evolution.mutations import RenameField
-from django.db import models
 
 
 MUTATIONS = [
diff --git a/reviewboard/admin/security_checks.py b/reviewboard/admin/security_checks.py
index 51382da98bdf6a511b2ba904feff3225bec96aad..b194d50a691b2800d9835bc8a0953457a7da7729 100644
--- a/reviewboard/admin/security_checks.py
+++ b/reviewboard/admin/security_checks.py
@@ -1,5 +1,6 @@
 from __future__ import unicode_literals
 
+import logging
 import os
 
 from django.conf import settings
diff --git a/reviewboard/datagrids/sidebar.py b/reviewboard/datagrids/sidebar.py
index 8c472da12095d5f5d4e4a725a25b45a2aaec5ba9..2637fc0f8f84dbfece7f3f7217aff5c143e47859 100644
--- a/reviewboard/datagrids/sidebar.py
+++ b/reviewboard/datagrids/sidebar.py
@@ -2,12 +2,9 @@ from __future__ import unicode_literals
 
 from django.template.context import RequestContext
 from django.template.loader import render_to_string
-from django.utils.datastructures import SortedDict
 from djblets.util.compat import six
 from djblets.util.compat.six.moves.urllib.parse import urlencode
 
-from reviewboard.accounts.models import Profile, LocalSiteProfile
-from reviewboard.reviews.models import Group, ReviewRequest
 from reviewboard.site.urlresolvers import local_site_reverse
 
 
diff --git a/reviewboard/diffviewer/tests.py b/reviewboard/diffviewer/tests.py
index 7013f64e75932e0e4a00339c52b4bab8765b3900..f25926de2b76c692db064b90eaceaefc476afc0f 100644
--- a/reviewboard/diffviewer/tests.py
+++ b/reviewboard/diffviewer/tests.py
@@ -1274,9 +1274,9 @@ class DiffOpcodeGeneratorTests(TestCase):
             self.generator._compute_line_indentation(
                 '\tfoo',
                 '        foo'),
-            (True, 1))
+            None)
 
-    def test_indentation_with_replacing_tabs_with_spaces(self):
+    def test_indentation_with_replacing_spaces_with_tabs(self):
         """Testing DiffOpcodeGenerator._calculate_indentation
         with spaces with tabs
         """
diff --git a/reviewboard/extensions/hooks.py b/reviewboard/extensions/hooks.py
index c7b35313b6005802329edd0a9f4f6ccc9b0f57c9..d9ce0f2f4fde1f35c2b0c2bc255feaafbb386497 100644
--- a/reviewboard/extensions/hooks.py
+++ b/reviewboard/extensions/hooks.py
@@ -110,7 +110,7 @@ class DataGridSidebarItemsHook(ExtensionHook):
             datagrid.sidebar.add_item(item)
 
     def shutdown(self):
-        super(DataGridSidebaritem_classesHook, self).shutdown()
+        super(DataGridSidebarItemsHook, self).shutdown()
 
         for item in self.item_classes:
             self.datagrid.sidebar.remove_item(item)
diff --git a/reviewboard/reviews/models/group.py b/reviewboard/reviews/models/group.py
index b5a83f079eb24c292d57385f6a81901f603ba0c7..031d7b0385417b2254f15328d1f90116f01faa64 100644
--- a/reviewboard/reviews/models/group.py
+++ b/reviewboard/reviews/models/group.py
@@ -1,6 +1,7 @@
 from __future__ import unicode_literals
 
 from django.contrib.auth.models import User
+from django.core.exceptions import ValidationError
 from django.db import models
 from django.utils.encoding import python_2_unicode_compatible
 from django.utils.translation import ugettext_lazy as _
diff --git a/reviewboard/reviews/tests.py b/reviewboard/reviews/tests.py
index a67f4fd57cd697a99f85cd7b0e6e840ec32fcf0e..9de80285db05d2dfcd61af9c59c518f31f4ac033 100644
--- a/reviewboard/reviews/tests.py
+++ b/reviewboard/reviews/tests.py
@@ -7,7 +7,6 @@ import os
 from django.conf import settings
 from django.contrib.auth.models import AnonymousUser, User
 from django.core.files.uploadedfile import SimpleUploadedFile
-from django.core.urlresolvers import reverse
 from django.template import Context, Template
 from django.utils import six
 from djblets.siteconfig.models import SiteConfiguration
@@ -2164,10 +2163,8 @@ class IssueCounterTests(TestCase):
         create_comment_func(review, issue_opened=False)
 
         # Three comments with an issue opened.
-        open_comments = [
+        for i in range(3):
             create_comment_func(review, issue_opened=True)
-            for i in range(3)
-        ]
 
         # Two comments with an issue dropped.
         dropped_comments = [
diff --git a/reviewboard/scmtools/svn/subvertpy.py b/reviewboard/scmtools/svn/subvertpy.py
index f37d7198ddc1ad244ddd65498c78fcf3d1557ded..45a305d2125d49571c7a180794724ec0f4be9519 100644
--- a/reviewboard/scmtools/svn/subvertpy.py
+++ b/reviewboard/scmtools/svn/subvertpy.py
@@ -175,10 +175,11 @@ class Client(base.Client):
 
     def get_filenames_in_revision(self, revision):
         """Returns a list of filenames associated with the revision."""
-        paths = None
+        paths = {}
 
         def log_cb(changed_paths, rev, props, has_children=False):
-            paths = changed_paths
+            paths.update(changed_paths)
+
         revnum = self._normalize_revision(revision)
         self.client.log(log_cb, self.repopath, revnum, revnum, limit=1,
                         discover_changed_paths=True)
diff --git a/reviewboard/urls.py b/reviewboard/urls.py
index 952fdb26aeabcfffa4b0453aa1308f1a0cf7e46b..8177f89556a3647abcc9ca72d6c10937400084c9 100644
--- a/reviewboard/urls.py
+++ b/reviewboard/urls.py
@@ -1,12 +1,10 @@
 from __future__ import unicode_literals
 
-import os
-
 from django.conf import settings
 from django.conf.urls import patterns, include, url
 from django.conf.urls.static import static
 from django.contrib import admin
-from django.views.generic import RedirectView, TemplateView
+from django.views.generic import TemplateView
 
 from reviewboard.datagrids.urls import urlpatterns as datagrid_urlpatterns
 from reviewboard.extensions.base import get_extension_manager
diff --git a/reviewboard/webapi/resources/review_request_draft.py b/reviewboard/webapi/resources/review_request_draft.py
index 6aa29f332ffb32ed779e5de6e89304b5cb8cb52f..8629b553a9007faff8f2bc2d6fe1ed6d37f01917 100644
--- a/reviewboard/webapi/resources/review_request_draft.py
+++ b/reviewboard/webapi/resources/review_request_draft.py
@@ -19,6 +19,7 @@ from reviewboard.scmtools.errors import InvalidChangeNumberError
 from reviewboard.webapi.base import WebAPIResource
 from reviewboard.webapi.decorators import webapi_check_local_site
 from reviewboard.webapi.encoder import status_to_string
+from reviewboard.webapi.errors import INVALID_CHANGE_NUMBER
 from reviewboard.webapi.mixins import MarkdownFieldsMixin
 from reviewboard.webapi.resources import resources
 
diff --git a/reviewboard/webapi/resources/server_info.py b/reviewboard/webapi/resources/server_info.py
index 385af028923af372c8ad4fbcb04d47d43a5aea40..de0de8999579b053f256403d79e0fb82dfa6de5e 100644
--- a/reviewboard/webapi/resources/server_info.py
+++ b/reviewboard/webapi/resources/server_info.py
@@ -1,12 +1,8 @@
 from __future__ import unicode_literals
 
-from django.conf import settings
-from django.contrib.sites.models import Site
-from djblets.siteconfig.models import SiteConfiguration
 from djblets.webapi.decorators import webapi_response_errors
 from djblets.webapi.errors import NOT_LOGGED_IN, PERMISSION_DENIED
 
-from reviewboard import get_version_string, get_package_version, is_release
 from reviewboard.webapi.base import WebAPIResource
 from reviewboard.webapi.decorators import (webapi_check_login_required,
                                            webapi_check_local_site)
