diff --git a/django/contrib/admin/__init__.py b/django/contrib/admin/__init__.py
index 704dc58..8367501 100644
--- a/django/contrib/admin/__init__.py
+++ b/django/contrib/admin/__init__.py
@@ -2,6 +2,8 @@ from django.contrib.admin.options import ModelAdmin, HORIZONTAL, VERTICAL
 from django.contrib.admin.options import StackedInline, TabularInline
 from django.contrib.admin.sites import AdminSite, site
 
+valid_apps_admin = []
+
 def autodiscover():
     """
     Auto-discover INSTALLED_APPS admin.py modules and fail silently when 
@@ -10,10 +12,19 @@ def autodiscover():
     """
     import imp
     from django.conf import settings
+
     for app in settings.INSTALLED_APPS:
-        try:
-            imp.find_module("admin", __import__(app, {}, {}, [app.split(".")[-1]]).__path__)
-        except ImportError:
-            # there is no app admin.py, skip it
-            continue
-        __import__("%s.admin" % app)
+
+        if app not in valid_apps_admin:
+
+            try:
+                imp.find_module("admin", __import__(app, {}, {}, [app.split(".")[-1]]).__path__)
+            except ImportError:
+                # there is no app admin.py, skip it
+                continue
+            try:
+                __import__("%s.admin" % app)
+            except:
+                raise
+            else:
+                valid_apps_admin.append(app)
