Index: django/contrib/syndication/feeds.py
===================================================================
--- django/contrib/syndication/feeds.py	(revision 8161)
+++ django/contrib/syndication/feeds.py	(working copy)
@@ -29,12 +29,34 @@
         self.feed_url = request.path
         self.title_template_name = self.title_template or ('feeds/%s_title.html' % slug)
         self.description_template_name = self.description_template or ('feeds/%s_description.html' % slug)
+        if Site._meta.installed:
+            self.current_site = Site.objects.get_current()
+        else:
+            self.current_site = RequestSite(self.request)
 
     def item_link(self, item):
         try:
             return item.get_absolute_url()
         except AttributeError:
             raise ImproperlyConfigured, "Give your %s class a get_absolute_url() method, or define an item_link() method in your Feed class." % item.__class__.__name__
+        
+    def item_title(self, item):
+        try:
+            title_tmp = loader.get_template(self.title_template_name)
+        except TemplateDoesNotExist:
+            return unicode(item)
+        title_rc = RequestContext(self.request, {'obj': item, 'site': self.current_site})
+        title_rc.autoescape = False
+        return title_tmp.render(title_rc)
+    
+    def item_description(self, item):
+        try:
+            description_tmp = loader.get_template(self.description_template_name)
+        except TemplateDoesNotExist:
+            return unicode(item)
+        description_rc = RequestContext(self.request, {'obj': item, 'site': self.current_site})
+        description_rc.autoescape = False
+        return description_tmp.render(description_rc)
 
     def __get_dynamic_attr(self, attname, obj, default=None):
         try:
@@ -74,13 +96,8 @@
         except ObjectDoesNotExist:
             raise FeedDoesNotExist
 
-        if Site._meta.installed:
-            current_site = Site.objects.get_current()
-        else:
-            current_site = RequestSite(self.request)
-
         link = self.__get_dynamic_attr('link', obj)
-        link = add_domain(current_site.domain, link)
+        link = add_domain(self.current_site.domain, link)
 
         feed = self.feed_type(
             title = self.__get_dynamic_attr('title', obj),
@@ -88,7 +105,7 @@
             link = link,
             description = self.__get_dynamic_attr('description', obj),
             language = settings.LANGUAGE_CODE.decode(),
-            feed_url = add_domain(current_site.domain,
+            feed_url = add_domain(self.current_site.domain,
                                   self.__get_dynamic_attr('feed_url', obj)),
             author_name = self.__get_dynamic_attr('author_name', obj),
             author_link = self.__get_dynamic_attr('author_link', obj),
@@ -99,17 +116,8 @@
             ttl = self.__get_dynamic_attr('ttl', obj),
         )
 
-        try:
-            title_tmp = loader.get_template(self.title_template_name)
-        except TemplateDoesNotExist:
-            title_tmp = Template('{{ obj }}')
-        try:
-            description_tmp = loader.get_template(self.description_template_name)
-        except TemplateDoesNotExist:
-            description_tmp = Template('{{ obj }}')
-
         for item in self.__get_dynamic_attr('items', obj):
-            link = add_domain(current_site.domain, self.__get_dynamic_attr('item_link', item))
+            link = add_domain(self.current_site.domain, self.__get_dynamic_attr('item_link', item))
             enc = None
             enc_url = self.__get_dynamic_attr('item_enclosure_url', item)
             if enc_url:
@@ -125,9 +133,9 @@
             else:
                 author_email = author_link = None
             feed.add_item(
-                title = title_tmp.render(RequestContext(self.request, {'obj': item, 'site': current_site})),
+                title = self.__get_dynamic_attr('item_title', item),
                 link = link,
-                description = description_tmp.render(RequestContext(self.request, {'obj': item, 'site': current_site})),
+                description = self.__get_dynamic_attr('item_description', item),
                 unique_id = self.__get_dynamic_attr('item_guid', item, link),
                 enclosure = enc,
                 pubdate = self.__get_dynamic_attr('item_pubdate', item),
