diff --git a/django/contrib/syndication/views.py b/django/contrib/syndication/views.py
index cec204d..4d34e84 100644
--- a/django/contrib/syndication/views.py
+++ b/django/contrib/syndication/views.py
@@ -138,6 +138,7 @@ class Feed(object):
             feed_copyright = self.__get_dynamic_attr('feed_copyright', obj),
             feed_guid = self.__get_dynamic_attr('feed_guid', obj),
             ttl = self.__get_dynamic_attr('ttl', obj),
+            stylesheets = self.__get_dynamic_attr('stylesheets', obj),
             **self.feed_extra_kwargs(obj)
         )
 
diff --git a/django/utils/feedgenerator.py b/django/utils/feedgenerator.py
index de32b9f..504ec89 100644
--- a/django/utils/feedgenerator.py
+++ b/django/utils/feedgenerator.py
@@ -86,13 +86,15 @@ class SyndicationFeed(object):
     "Base class for all syndication feeds. Subclasses should provide write()"
     def __init__(self, title, link, description, language=None, author_email=None,
             author_name=None, author_link=None, subtitle=None, categories=None,
-            feed_url=None, feed_copyright=None, feed_guid=None, ttl=None, **kwargs):
+            feed_url=None, feed_copyright=None, feed_guid=None, ttl=None, stylesheets=None, **kwargs):
         to_unicode = lambda s: force_text(s, strings_only=True)
         if categories:
             categories = [force_text(c) for c in categories]
         if ttl is not None:
             # Force ints to unicode
             ttl = force_text(ttl)
+        if stylesheets:
+            stylesheets = [iri_to_uri(s) for s in stylesheets]
         self.feed = {
             'title': to_unicode(title),
             'link': iri_to_uri(link),
@@ -107,6 +109,7 @@ class SyndicationFeed(object):
             'feed_copyright': to_unicode(feed_copyright),
             'id': feed_guid or link,
             'ttl': ttl,
+            'stylesheets': stylesheets or (),
         }
         self.feed.update(kwargs)
         self.items = []
@@ -219,6 +222,9 @@ class RssFeed(SyndicationFeed):
     def write(self, outfile, encoding):
         handler = SimplerXMLGenerator(outfile, encoding)
         handler.startDocument()
+        for s in self.feed['stylesheets']:
+            # http://www.w3.org/TR/xml-stylesheet/
+            handler.processingInstruction('xml-stylesheet', 'type="text/css" href="%s"' % s)
         handler.startElement("rss", self.rss_attributes())
         handler.startElement("channel", self.root_attributes())
         self.add_root_elements(handler)
diff --git a/docs/ref/contrib/syndication.txt b/docs/ref/contrib/syndication.txt
index 9a0fb58..74d3fd5 100644
--- a/docs/ref/contrib/syndication.txt
+++ b/docs/ref/contrib/syndication.txt
@@ -327,6 +327,14 @@ Atom feeds require a ``<link rel="self">`` that defines the feed's current
 location. The syndication framework populates this automatically, using the
 domain of the current site according to the :setting:`SITE_ID` setting.
 
+Stylesheets
+-----------
+
+.. versionadded:: 1.7
+
+RSS feeds support the inclusion of stylesheets via the ``stylesheets``
+attribute, as a sequence of stylesheets to be added to the feed.
+
 Publishing Atom and RSS feeds in tandem
 ---------------------------------------
 
@@ -591,6 +599,8 @@ This example illustrates all possible attributes and methods for a
 
         ttl = 600 # Hard-coded Time To Live.
 
+        stylesheets = ('http://www.example.com/example.css',) # Hard-coded stylesheets to be added to feed
+
         # ITEMS -- One of the following three is required. The framework looks
         # for them in this order.
 
@@ -918,12 +928,13 @@ They share this interface:
     * ``feed_copyright``
     * ``feed_guid``
     * ``ttl``
+    * ``stylesheets``
 
     Any extra keyword arguments you pass to ``__init__`` will be stored in
     ``self.feed`` for use with `custom feed generators`_.
 
-    All parameters should be Unicode objects, except ``categories``, which
-    should be a sequence of Unicode objects.
+    All parameters should be Unicode objects, except ``categories`` and
+    ``stylesheets``, which should be sequences of Unicode objects.
 
 :meth:`.SyndicationFeed.add_item`
     Add an item to the feed with the given parameters.
diff --git a/tests/syndication/feeds.py b/tests/syndication/feeds.py
index f8ffb4b..08b8aaf 100644
--- a/tests/syndication/feeds.py
+++ b/tests/syndication/feeds.py
@@ -25,6 +25,7 @@ class TestRss2Feed(views.Feed):
     categories = ('python', 'django')
     feed_copyright = 'Copyright (c) 2007, Sally Smith'
     ttl = 600
+    stylesheets = ('http://www.example.com/example.css',)
 
     def items(self):
         return Entry.objects.all()
diff --git a/tests/syndication/tests.py b/tests/syndication/tests.py
index 8bc6b04..39b927e 100644
--- a/tests/syndication/tests.py
+++ b/tests/syndication/tests.py
@@ -51,6 +51,10 @@ class SyndicationFeedTest(FeedTestCase):
         feed = feed_elem[0]
         self.assertEqual(feed.getAttribute('version'), '2.0')
 
+        # Verify document has a stylesheet element (processing instruction <?xml-stylesheet ... ?>)
+        self.assertEqual(doc.firstChild.target, 'xml-stylesheet')
+        self.assertEqual(doc.firstChild.data, 'type="text/css" href="http://www.example.com/example.css"')
+
         # Making sure there's only one `channel` element w/in the
         # `rss` element.
         chan_elem = feed.getElementsByTagName('channel')
