Index: AUTHORS
===================================================================
--- AUTHORS	(revision 12678)
+++ AUTHORS	(working copy)
@@ -507,6 +507,7 @@
     Cheng Zhang
     Glenn Maynard <glenn@zewt.org>
     bthomas
+    Gabriel Hurley <gabriel@strikeawe.com>
 
 A big THANK YOU goes to:
 
Index: django/forms/models.py
===================================================================
--- django/forms/models.py	(revision 12678)
+++ django/forms/models.py	(working copy)
@@ -687,6 +687,11 @@
         return super(BaseInlineFormSet, self).initial_form_count()
 
     def total_form_count(self):
+        # To avoid breaking default behavior of max_num = 0, we can set
+        # max_num to the queryset length and trigger the limiting effect
+        # that prevents the creation of new inlines.
+        if self.max_num == 0 and self.extra == 0:
+            self.max_num = len(self.get_queryset())
         if self.save_as_new:
             return super(BaseInlineFormSet, self).initial_form_count()
         return super(BaseInlineFormSet, self).total_form_count()
Index: docs/ref/contrib/admin/index.txt
===================================================================
--- docs/ref/contrib/admin/index.txt	(revision 12678)
+++ docs/ref/contrib/admin/index.txt	(working copy)
@@ -1048,8 +1048,10 @@
 
 .. versionadded:: 1.2
 
-Extra forms for inlines will be hidden and replaced with a link to dynamically
-add any number of new inlines for users with Javascript enabled.
+A link to dynamically add any number of new inlines will be added to the last 
+inline form of the formset for users with Javascript enabled. To prevent the 
+dynamic creation of new inlines (and remove that link), specify a value of 0 
+for both ``extra`` and ``max_num`` (0 is the default for ``max_num``).
 
 ``max_num``
 ~~~~~~~~~~~
