diff --git a/django/contrib/comments/forms.py b/django/contrib/comments/forms.py
index 713269f..456826e 100644
--- a/django/contrib/comments/forms.py
+++ b/django/contrib/comments/forms.py
@@ -7,7 +7,7 @@ from django.forms.util import ErrorDict
 from django.conf import settings
 from django.http import Http404
 from django.contrib.contenttypes.models import ContentType
-from models import Comment
+from django.contrib import comments
 from django.utils.encoding import force_unicode
 from django.utils.hashcompat import sha_constructor
 from django.utils.text import get_text_list
@@ -15,15 +15,12 @@ from django.utils.translation import ungettext, ugettext_lazy as _
 
 COMMENT_MAX_LENGTH = getattr(settings,'COMMENT_MAX_LENGTH', 3000)
 
-class CommentForm(forms.Form):
+class BaseCommentForm(forms.Form):
     name          = forms.CharField(label=_("Name"), max_length=50)
     email         = forms.EmailField(label=_("Email address"))
     url           = forms.URLField(label=_("URL"), required=False)
     comment       = forms.CharField(label=_('Comment'), widget=forms.Textarea,
                                     max_length=COMMENT_MAX_LENGTH)
-    honeypot      = forms.CharField(required=False,
-                                    label=_('If you enter anything in this field '\
-                                            'your comment will be treated as spam'))
     content_type  = forms.CharField(widget=forms.HiddenInput)
     object_pk     = forms.CharField(widget=forms.HiddenInput)
     timestamp     = forms.IntegerField(widget=forms.HiddenInput)
@@ -34,7 +31,7 @@ class CommentForm(forms.Form):
         if initial is None:
             initial = {}
         initial.update(self.generate_security_data())
-        super(CommentForm, self).__init__(data=data, initial=initial)
+        super(BaseCommentForm, self).__init__(data=data, initial=initial)
 
     def get_comment_object(self):
         """
@@ -47,8 +44,10 @@ class CommentForm(forms.Form):
         """
         if not self.is_valid():
             raise ValueError("get_comment_object may only be called on valid forms")
-
-        new = Comment(
+        
+        comment_model = comments.get_model()
+        
+        new = comment_model(
             content_type = ContentType.objects.get_for_model(self.target_object),
             object_pk    = force_unicode(self.target_object._get_pk_val()),
             user_name    = self.cleaned_data["name"],
@@ -63,7 +62,7 @@ class CommentForm(forms.Form):
 
         # Check that this comment isn't duplicate. (Sometimes people post comments
         # twice by mistake.) If it is, fail silently by returning the old comment.
-        possible_duplicates = Comment.objects.filter(
+        possible_duplicates = comment_model.objects.filter(
             content_type = new.content_type,
             object_pk = new.object_pk,
             user_name = new.user_name,
@@ -79,18 +78,11 @@ class CommentForm(forms.Form):
     def security_errors(self):
         """Return just those errors associated with security"""
         errors = ErrorDict()
-        for f in ["honeypot", "timestamp", "security_hash"]:
+        for f in ["timestamp", "security_hash"]:
             if f in self.errors:
                 errors[f] = self.errors[f]
         return errors
 
-    def clean_honeypot(self):
-        """Check that nothing's been entered into the honeypot."""
-        value = self.cleaned_data["honeypot"]
-        if value:
-            raise forms.ValidationError(self.fields["honeypot"].label)
-        return value
-
     def clean_security_hash(self):
         """Check the security hash."""
         security_hash_dict = {
@@ -155,3 +147,23 @@ class CommentForm(forms.Form):
         """Generate a (SHA1) security hash from the provided info."""
         info = (content_type, object_pk, timestamp, settings.SECRET_KEY)
         return sha_constructor("".join(info)).hexdigest()
+
+
+class CommentForm(BaseCommentForm):
+    honeypot      = forms.CharField(required=False,
+                                    label=_('If you enter anything in this field '
+                                            'your comment will be treated as spam'))
+
+    def security_errors(self):
+        """Return just those errors associated with security"""
+        errors = super(CommentForm, self).security_errors()
+        if "honeypot" in self.errors:
+            errors['honeypot'] = self.errors['honeypot']
+        return errors
+
+    def clean_honeypot(self):
+        """Check that nothing's been entered into the honeypot."""
+        value = self.cleaned_data["honeypot"]
+        if value:
+            raise forms.ValidationError(self.fields["honeypot"].label)
+        return value
