Index: django/django/contrib/admin/options.py
===================================================================
--- django/django/contrib/admin/options.py	(revision 8066)
+++ django/django/contrib/admin/options.py	(working copy)
@@ -462,18 +462,10 @@
         "The 'add' admin view for this model."
         model = self.model
         opts = model._meta
-        app_label = opts.app_label
 
         if not self.has_add_permission(request):
             raise PermissionDenied
 
-        if self.has_change_permission(request, None):
-            # redirect to list view
-            post_url = '../'
-        else:
-            # Object list will give 'Permission Denied', so go back to admin home
-            post_url = '../../../'
-
         ModelForm = self.get_form(request)
         inline_formsets = []
         obj = self.model()
@@ -519,7 +511,6 @@
         "The 'change' admin view for this model."
         model = self.model
         opts = model._meta
-        app_label = opts.app_label
 
         try:
             obj = model._default_manager.get(pk=object_id)
Index: django/django/contrib/admin/widgets.py
===================================================================
--- django/django/contrib/admin/widgets.py	(revision 8066)
+++ django/django/contrib/admin/widgets.py	(working copy)
@@ -106,7 +106,7 @@
         else:
             url = ''
         if not attrs.has_key('class'):
-          attrs['class'] = 'vForeignKeyRawIdAdminField' # The JavaScript looks for this hook.
+            attrs['class'] = 'vForeignKeyRawIdAdminField' # The JavaScript looks for this hook.
         output = [super(ForeignKeyRawIdWidget, self).render(name, value, attrs)]
         # TODO: "id_" is hard-coded here. This should instead use the correct
         # API to determine the ID dynamically.
Index: django/django/contrib/admin/sites.py
===================================================================
--- django/django/contrib/admin/sites.py	(revision 8066)
+++ django/django/contrib/admin/sites.py	(working copy)
@@ -1,7 +1,6 @@
 from django import http, template
 from django.contrib.admin import ModelAdmin
 from django.contrib.auth import authenticate, login
-from django.core.exceptions import ImproperlyConfigured
 from django.db.models.base import ModelBase
 from django.shortcuts import render_to_response
 from django.utils.safestring import mark_safe
@@ -11,7 +10,6 @@
 from django.conf import settings
 import base64
 import cPickle as pickle
-import datetime
 import md5
 import re
 
@@ -27,13 +25,11 @@
     pass
 
 def _encode_post_data(post_data):
-    from django.conf import settings
     pickled = pickle.dumps(post_data)
     pickled_md5 = md5.new(pickled + settings.SECRET_KEY).hexdigest()
     return base64.encodestring(pickled + pickled_md5)
 
 def _decode_post_data(encoded_data):
-    from django.conf import settings
     encoded_data = base64.decodestring(encoded_data)
     pickled, tamper_check = encoded_data[:-32], encoded_data[-32:]
     if md5.new(pickled + settings.SECRET_KEY).hexdigest() != tamper_check:
@@ -204,7 +200,6 @@
         This takes into account the USE_I18N setting. If it's set to False, the
         generated JavaScript will be leaner and faster.
         """
-        from django.conf import settings
         if settings.USE_I18N:
             from django.views.i18n import javascript_catalog
         else:
