Index: docs/ref/contrib/flatpages.txt
===================================================================
--- docs/ref/contrib/flatpages.txt	(revision 16243)
+++ docs/ref/contrib/flatpages.txt	(working copy)
@@ -134,6 +134,8 @@
 "Flatpages" section on the admin index page. Edit flatpages as you edit any
 other object in the system.
 
+Take into consideration that the admin interface won't allow you to create two flatpages with the same url if they both belong to the same Site.
+
 Via the Python API
 ------------------
 
Index: django/contrib/flatpages/admin.py
===================================================================
--- django/contrib/flatpages/admin.py	(revision 16243)
+++ django/contrib/flatpages/admin.py	(working copy)
@@ -11,6 +11,19 @@
         error_message = _("This value must contain only letters, numbers,"
                           " dots, underscores, dashes, slashes or tildes."))
 
+    def clean(self):
+        url = self.cleaned_data.get('url')
+        sites = self.cleaned_data.get('sites')
+        if url and sites:
+            other_flatpages_with_same_url = FlatPage.objects.exclude(pk=self.instance.pk).filter(url=url)
+
+            for other_flatpage in other_flatpages_with_same_url:
+                for site in sites:
+                    if site in other_flatpage.sites.all():
+                        raise forms.ValidationError(_("URL '%s' is already assigned to another FlatPage '%s' that also belongs to the site '%s'. Two FlatPages can't have the same URL if they belong to the same site." % (url, other_flatpage.title, site)))
+
+        return super(FlatpageForm, self).clean()
+
     class Meta:
         model = FlatPage
 
Index: django/contrib/flatpages/tests/forms.py
===================================================================
--- django/contrib/flatpages/tests/forms.py	(revision 16243)
+++ django/contrib/flatpages/tests/forms.py	(working copy)
@@ -1,5 +1,7 @@
 from django.conf import settings
 from django.contrib.flatpages.admin import FlatpageForm
+from django.contrib.flatpages.models import FlatPage
+from django.contrib.sites.models import Site
 from django.test import TestCase
 
 class FlatpageAdminFormTests(TestCase):
@@ -11,7 +13,7 @@
         }
 
     def test_flatpage_admin_form_url_validation(self):
-        "The flatpage admin form validates correctly validates urls"
+        "The flatpage admin form correctly validates urls"
         self.assertTrue(FlatpageForm(data=dict(url='/new_flatpage/', **self.form_data)).is_valid())
         self.assertTrue(FlatpageForm(data=dict(url='/some.special~chars/', **self.form_data)).is_valid())
         self.assertTrue(FlatpageForm(data=dict(url='/some.very_special~chars-here/', **self.form_data)).is_valid())
@@ -21,3 +23,33 @@
         self.assertFalse(FlatpageForm(data=dict(url='/a ! char/', **self.form_data)).is_valid())
         self.assertFalse(FlatpageForm(data=dict(url='/a & char/', **self.form_data)).is_valid())
         self.assertFalse(FlatpageForm(data=dict(url='/a ? char/', **self.form_data)).is_valid())
+
+    def test_url_must_be_unique_for_all_pages_in_the_same_site(self):
+        "The flatpage admin form correctly enforces url uniqueness among all flatpages belonging to the same site"
+        
+        site1 = Site.objects.create(domain='site1.com', name='site1')
+        site1.save()
+        
+        site2 = Site.objects.create(domain='site2.com', name='site2')
+        site2.save()
+        
+        my_page = FlatPage.objects.create(
+            url="/my-page/",
+            title="This is my page",
+            content="Isn't it special!",
+            enable_comments=False,
+            registration_required=False,
+        )
+        my_page.sites.add(site1) # add my_page to site1
+        my_page.save()
+        
+        new_page_data = {
+            'title': "A test page",
+            'content': "This is a test",
+        }
+        
+        # New page has the same url as my_page and is in the same site -> error
+        self.assertFalse(FlatpageForm(data=dict(url='/my-page/', sites=[site1.pk], **new_page_data)).is_valid())
+        
+        # New page has the same url as my_page but is in another site -> ok
+        self.assertTrue(FlatpageForm(data=dict(url='/my-page/', sites=[site2.pk], **new_page_data)).is_valid())
\ No newline at end of file
