diff --git modules/comment/comment.install modules/comment/comment.install
index 6a7b034..853e94c 100644
--- modules/comment/comment.install
+++ modules/comment/comment.install
@@ -337,6 +337,32 @@ function comment_update_7006(&$sandbox) {
 }
 
 /**
+ * Add the node_type column and fill it with values.
+ */
+function comment_update_7007() {
+  db_add_field('comment', 'node_type', array(
+    'type' => 'varchar',
+    'length' => 45,
+    'not null' => TRUE,
+    'default' => '',
+  ));
+
+  // Get a list of comment nids, and their associated types
+  $node_types = array();
+  $nodes = db_query("SELECT nid, type FROM {node} WHERE nid IN (SELECT nid FROM {comment})");
+  foreach ($nodes as $node) {
+    $node_types[$node->type][] = $node->nid;
+  }
+
+  foreach ($node_types as $node_type => $nids) {
+    db_update('comment')
+      ->fields(array('node_type' => 'comment_node_' . $node_type))
+      ->condition('nid', $nids, 'IN')
+      ->execute();
+  }
+}
+
+/**
  * @} End of "defgroup updates-6.x-to-7.x"
  * The next series of updates should start at 8000.
  */
@@ -371,6 +397,13 @@ function comment_schema() {
         'default' => 0,
         'description' => 'The {users}.uid who authored the comment. If set to 0, this comment was created by an anonymous user.',
       ),
+      'node_type' => array(
+        'type' => 'varchar',
+        'length' => 45,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => 'The comment bundle key.',
+      ),
       'subject' => array(
         'type' => 'varchar',
         'length' => 64,
diff --git modules/comment/comment.module modules/comment/comment.module
index cef42db..05026ce 100644
--- modules/comment/comment.module
+++ modules/comment/comment.module
@@ -1527,6 +1527,7 @@ function comment_save($comment) {
           'nid' => $comment->nid,
           'pid' => empty($comment->pid) ? 0 : $comment->pid,
           'uid' => $comment->uid,
+          'node_type' => $comment->node_type,
           'subject' => $comment->subject,
           'hostname' => ip_address(),
           'created' => $comment->created,
@@ -1640,9 +1641,7 @@ class CommentController extends DrupalDefaultEntityController {
 
   protected function buildQuery($ids, $conditions = array(), $revision_id = FALSE) {
     $query = parent::buildQuery($ids, $conditions, $revision_id);
-    // Specify additional fields from the user and node tables.
-    $query->innerJoin('node', 'n', 'base.nid = n.nid');
-    $query->addField('n', 'type', 'node_type');
+    // Specify additional fields from the user table.
     $query->innerJoin('users', 'u', 'base.uid = u.uid');
     $query->addField('u', 'name', 'registered_name');
     $query->fields('u', array('uid', 'signature', 'signature_format', 'picture'));
@@ -1654,7 +1653,6 @@ class CommentController extends DrupalDefaultEntityController {
     foreach ($comments as $key => $comment) {
       $comment->name = $comment->uid ? $comment->registered_name : $comment->name;
       $comment->new = node_mark($comment->nid, $comment->changed);
-      $comment->node_type = 'comment_node_' . $comment->node_type;
       $comments[$key] = $comment;
     }
     parent::attachLoad($comments, $revision_id);
