diff --git a/django/contrib/admin/validation.py b/django/contrib/admin/validation.py
index 027db63..f6de85c 100644
--- a/django/contrib/admin/validation.py
+++ b/django/contrib/admin/validation.py
@@ -6,6 +6,8 @@ from django.forms.models import (BaseModelForm, BaseModelFormSet, fields_for_mod
 from django.contrib.admin.util import get_fields_from_path, NotRelationField
 from django.contrib.admin.options import flatten_fieldsets, BaseModelAdmin
 from django.contrib.admin.options import HORIZONTAL, VERTICAL
+from django.template.base import TemplateDoesNotExist
+from django.template.loader import find_template
 
 
 __all__ = ['validate']
@@ -199,6 +201,16 @@ def validate_inline(cls, parent, parent_model):
             raise ImproperlyConfigured("%s cannot exclude the field "
                     "'%s' - this is the foreign key to the parent model "
                     "%s." % (cls.__name__, fk.name, parent_model.__name__))
+    
+    # template
+    template = getattr(cls, 'template', None)
+    if template is None:
+        raise ImproperlyConfigured("%s.template cannot be None" % cls.__name__)
+    try:
+        find_template(template)
+    except TemplateDoesNotExist:
+        raise ImproperlyConfigured("%s.template cannot be loaded, template "
+               "'%s' could not be found" % (cls.__name__, template))
 
 def validate_base(cls, model):
     opts = model._meta
diff --git a/tests/regressiontests/admin_inlines/models.py b/tests/regressiontests/admin_inlines/models.py
index 4e5c4e3..a5da886 100644
--- a/tests/regressiontests/admin_inlines/models.py
+++ b/tests/regressiontests/admin_inlines/models.py
@@ -6,6 +6,7 @@ from django.db import models
 from django.contrib import admin
 from django.contrib.contenttypes.models import ContentType
 from django.contrib.contenttypes import generic
+from django.contrib.admin.options import InlineModelAdmin
 
 class Parent(models.Model):
     name = models.CharField(max_length=50)
@@ -123,3 +124,12 @@ class InlineWeakness(admin.TabularInline):
     extra = 1
 
 admin.site.register(Fashionista, inlines=[InlineWeakness])
+
+# Don't register this because we only need it to test validation
+class InnerInlineNoTemplate(InlineModelAdmin):
+    model = Inner
+
+# Don't register this because we only need it to test validation
+class InnerInlineNonExistingTemplate(admin.TabularInline):
+    model = Inner
+    template = "does/not/exist.html"
\ No newline at end of file
diff --git a/tests/regressiontests/admin_inlines/tests.py b/tests/regressiontests/admin_inlines/tests.py
index b10474d..c5ffbb7 100644
--- a/tests/regressiontests/admin_inlines/tests.py
+++ b/tests/regressiontests/admin_inlines/tests.py
@@ -1,10 +1,15 @@
 from django.contrib.admin.helpers import InlineAdminForm
 from django.contrib.contenttypes.models import ContentType
+from django.contrib.admin.validation import validate_inline
+from django.core.exceptions import ImproperlyConfigured
 from django.test import TestCase
 
 # local test models
 from models import (Holder, Inner, InnerInline, Holder2, Inner2, Holder3,
-    Inner3, Person, OutfitItem, Fashionista, Teacher, Parent, Child)
+    Inner3, Person, OutfitItem, Fashionista, Teacher, Parent, Child,
+    InnerInlineNonExistingTemplate, InnerInlineNoTemplate, HolderAdmin)
+
+# local test models
 
 
 class TestInline(TestCase):
@@ -66,6 +71,15 @@ class TestInline(TestCase):
         response = self.client.post('/test_admin/admin/admin_inlines/fashionista/add/', data)
         self.assertEqual(response.status_code, 302)
         self.assertEqual(len(Fashionista.objects.filter(person__firstname='Imelda')), 1)
+    
+    def test_inline_template_validation(self):
+        self.assertRaises(ImproperlyConfigured, validate_inline,
+                          InnerInlineNoTemplate, HolderAdmin, Holder)
+        self.assertRaises(ImproperlyConfigured, validate_inline,
+                          InnerInlineNonExistingTemplate, HolderAdmin, Holder)
+        # check that regular inlines don't raise an exception:
+        validate_inline(InnerInline, HolderAdmin, Holder)
+        
 
 class TestInlineMedia(TestCase):
     fixtures = ['admin-views-users.xml']
@@ -118,4 +132,4 @@ class TestInlineAdminForm(TestCase):
 
         iaf = InlineAdminForm(None, None, {}, {}, joe)
         parent_ct = ContentType.objects.get_for_model(Parent)
-        self.assertEqual(iaf.original.content_type, parent_ct)
+        self.assertEqual(iaf.original.content_type, parent_ct)
\ No newline at end of file
