Index: comments.py
===================================================================
--- comments.py	(revision 4150)
+++ comments.py	(working copy)
@@ -154,7 +154,7 @@
         c.save()
         return c
 
-def post_comment(request):
+def post_comment(request, extra_context=None, context_processors=None):
     """
     Post a comment
 
@@ -232,6 +232,7 @@
                 return field_list
         comment = errors and '' or manipulator.get_comment(new_data)
         comment_form = CommentFormWrapper(manipulator, new_data, errors, rating_choices)
+        if extra_context is None: extra_context = {}
         return render_to_response('comments/preview.html', {
             'comment': comment,
             'comment_form': comment_form,
@@ -243,7 +244,7 @@
             'ratings_required': RATINGS_REQUIRED in option_list,
             'rating_range': rating_range,
             'rating_choices': rating_choices,
-        }, context_instance=RequestContext(request))
+        }, context_instance=RequestContext(request, extra_context, context_processors))
     elif request.POST.has_key('post'):
         # If the IP is banned, mail the admins, do NOT save the comment, and
         # serve up the "Thanks for posting" page as if the comment WAS posted.
@@ -256,7 +257,7 @@
     else:
         raise Http404, _("The comment form didn't provide either 'preview' or 'post'")
 
-def post_free_comment(request):
+def post_free_comment(request, extra_context=None, context_processors=None):
     """
     Post a free comment (not requiring a log in)
 
@@ -300,13 +301,14 @@
     errors = manipulator.get_validation_errors(new_data)
     if errors or request.POST.has_key('preview'):
         comment = errors and '' or manipulator.get_comment(new_data)
+        if extra_context is None: extra_context = {}
         return render_to_response('comments/free_preview.html', {
             'comment': comment,
             'comment_form': forms.FormWrapper(manipulator, new_data, errors),
             'options': options,
             'target': target,
             'hash': security_hash,
-        }, context_instance=RequestContext(request))
+        }, context_instance=RequestContext(request, extra_context, context_processors))
     elif request.POST.has_key('post'):
         # If the IP is banned, mail the admins, do NOT save the comment, and
         # serve up the "Thanks for posting" page as if the comment WAS posted.
@@ -320,7 +322,7 @@
     else:
         raise Http404, _("The comment form didn't provide either 'preview' or 'post'")
 
-def comment_was_posted(request):
+def comment_was_posted(request, extra_context=None, context_processors=None):
     """
     Display "comment was posted" success page
 
@@ -337,4 +339,7 @@
             obj = content_type.get_object_for_this_type(pk=object_id)
         except ObjectDoesNotExist:
             pass
-    return render_to_response('comments/posted.html', {'object': obj}, context_instance=RequestContext(request))
+    if extra_context is None: extra_context = {}
+    return render_to_response('comments/posted.html', {
+        'object': obj
+    }, context_instance=RequestContext(request, extra_context, context_processors))
