--- comment_cck.module	2008-09-08 15:34:10.000000000 -0400
+++ comment_cck.module.new	2008-09-08 17:21:21.000000000 -0400
@@ -103,6 +103,10 @@ function _comment_cck_submit($form, &$fo
  * Implementation of hook_comment
  */
 function comment_cck_comment(&$comment, $op) {
+  // It is possible that a user without permissions submitted a comment, in which case, ignore.
+  if (!user_access('change cck fields through comments') && $op != 'view') {
+    return;
+  }
   switch ($op) {
     case 'update':
       $node = node_load($comment['nid']);
@@ -118,10 +122,10 @@ function comment_cck_comment(&$comment, 
       break;
 
     case 'insert':
-      $node = node_load($comment['nid']);
-      if (variable_get('comment_cck_node_'. $node->type, FALSE) == TRUE) {
+      $original_node = node_load($comment['nid']);
+      if (variable_get('comment_cck_node_'. $original_node->type, FALSE) == TRUE) {
         // Merge the new array with the old node.
-        $node = (object) array_merge((array) node_load($comment['nid']), $comment['comment_cck']);
+        $node = (object) array_merge((array) $original_node, $comment['comment_cck']);
         $previous_vid = $node->vid;
         // We want a new revision.
         $node->revision = 1;
