Index: plugins/comments/plugins/akismetcomments.py
===================================================================
--- plugins/comments/plugins/akismetcomments.py	(revision 1240)
+++ plugins/comments/plugins/akismetcomments.py	(working copy)
@@ -83,19 +83,20 @@
     comment = args['comment']
     config = request.getConfiguration()
 
-    form = request.getForm()
     reqdata = request.getData()
     http = request.getHttp()
 
-    fields = { 'comment' : 'body',
+    fields = { 'comment' : 'description',
                'comment_author_email' : 'email',
                'comment_author' : 'author',
-               'comment_author_url' : 'url' }
+               'comment_author_url' : 'link',
+               'comment_type' : 'type',
+               }
     data = {}
     for field in fields:
-        if form.has_key(fields[field]):
+        if comment.has_key(fields[field]):
             data[field] = ""
-            for char in list(form[fields[field]].value):
+            for char in list(comment[fields[field]]):
                 try:
                     char.encode('ascii')
                 except:
@@ -104,10 +105,12 @@
                     data[field] = data[field] + char
 
     if 'comment' not in data or not data['comment']:
+        print >>sys.stderr, "Comment info not enough."
         return False
     body = data['comment']
 
-    data['user_ip'] = comment['ipaddress']
+    if 'ipaddress' in comment:
+        data['user_ip'] = comment['ipaddress']
     data['user_agent'] = http.get('HTTP_USER_AGENT','')
     data['referrer'] = http.get('HTTP_REFERER','')
 
Index: plugins/comments/plugins/comments.py
===================================================================
--- plugins/comments/plugins/comments.py	(revision 1240)
+++ plugins/comments/plugins/comments.py	(working copy)
@@ -761,7 +761,7 @@
                  'description' : add_dont_follow(body, config) }
 
         keys = form.keys()
-        keys = [k for k in keys if k not in ["title", "url", "author", "body"]]
+        keys = [k for k in keys if k not in ["title", "url", "author", "body", "description"]]
         for k in keys:
             cdict[k] = form[k].value
 
Index: plugins/comments/plugins/trackback.py
===================================================================
--- plugins/comments/plugins/trackback.py	(revision 1240)
+++ plugins/comments/plugins/trackback.py	(working copy)
@@ -98,14 +98,14 @@
             decode_form(form, encoding)
             import time
             cdict = { 'title': form.getvalue('title', ''),
-                      'author': 'Trackback from %s' % form.getvalue('blog_name', ''),
+                      'author' : form.getvalue('blog_name', ''),
                       'pubDate' : str(time.time()),
                       'link' : form['url'].value,
                       'source' : form.getvalue('blog_name', ''),
                       'description' : form.getvalue('excerpt', ''),
                       'ipaddress': pyhttp.get('REMOTE_ADDR', ''),
+                      'type' : 'trackback'
                       }
-
             argdict = { "request": request, "comment": cdict }
             reject = tools.run_callback("trackback_reject",
                                         argdict,
@@ -135,6 +135,8 @@
                 entry = FileEntry(request, '%s.%s' % (path, ext), datadir )
                 data = {}
                 data['entry_list'] = [ entry ]
+                # Format Author
+                cdict['author'] = 'Trackback from %s' % form.getvalue('blog_name', '')
                 writeComment(request, config, data, cdict, encoding)
                 print >> response, tb_good_response
             except OSError:
