Index: django/contrib/syndication/feeds.py
===================================================================
--- django/contrib/syndication/feeds.py	(revision 6837)
+++ django/contrib/syndication/feeds.py	(working copy)
@@ -55,18 +55,18 @@
                 return attr()
         return attr
 
-    def get_feed(self, url=None):
+    def get_object(self, bits):
+        return None
+
+    def get_feed(self, url=""):
         """
         Returns a feedgenerator.DefaultFeed object, fully populated, for
         this feed. Raises FeedDoesNotExist for invalid parameters.
         """
-        if url:
-            try:
-                obj = self.get_object(url.split('/'))
-            except (AttributeError, ObjectDoesNotExist):
-                raise FeedDoesNotExist
-        else:
-            obj = None
+        try:
+            obj = self.get_object([bit for bit in url.split('/') if bit])
+        except (AttributeError, ObjectDoesNotExist):
+            raise FeedDoesNotExist
 
         if Site._meta.installed:
             current_site = Site.objects.get_current()
Index: tests/regressiontests/syndication/__init__.py
===================================================================
Index: tests/regressiontests/syndication/tests.py
===================================================================
--- tests/regressiontests/syndication/tests.py	(revision 0)
+++ tests/regressiontests/syndication/tests.py	(revision 0)
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+
+from django.test import TestCase 
+from django.contrib.syndication import feeds
+from django.core.exceptions import ObjectDoesNotExist
+from django.http import HttpRequest
+
+class SyndicationFeedTest(TestCase):
+    def test_send_empty_urls_to_get_object(self):
+        """
+        tests that get_object gets a chance to handle empty urls
+        """
+        _test_log = []
+        class FeedStub(feeds.Feed):
+            def get_object(self, bits):
+                _test_log.append(bits)
+                raise ObjectDoesNotExist
+                
+        f = FeedStub('foo', HttpRequest())
+        self.assertRaises(
+            feeds.FeedDoesNotExist,
+            f.get_feed,
+            '')
+        self.assertEquals(_test_log, [[]])
Index: tests/regressiontests/syndication/models.py
===================================================================
Index: docs/syndication_feeds.txt
===================================================================
--- docs/syndication_feeds.txt	(revision 6837)
+++ docs/syndication_feeds.txt	(working copy)
@@ -243,6 +243,14 @@
       raises ``Beat.DoesNotExist`` on failure, and ``Beat.DoesNotExist`` is a
       subclass of ``ObjectDoesNotExist``. Raising ``ObjectDoesNotExist`` in
       ``get_object()`` tells Django to produce a 404 error for that request.
+
+      **New in Django development version:** Note that get_object also gets a
+      chance to handle the ``/rss/beats/`` url.  In this case bits will be
+      an empty list.  In our example, since ``len(bits) != 1`` an
+      ``ObjectDoesNotExist`` exception will be raised, so ``/rss/beats/`` will
+      generate a 404 page.  But you can handle this case however you like.  For
+      example you could generate a combined feed for all beats.
+
     * To generate the feed's ``<title>``, ``<link>`` and ``<description>``,
       Django uses the ``title()``, ``link()`` and ``description()`` methods. In
       the previous example, they were simple string class attributes, but this
