diff --git a/modules/comment/comment.admin.inc b/modules/comment/comment.admin.inc
index 4f3d350..d1e429a 100644
--- a/modules/comment/comment.admin.inc
+++ b/modules/comment/comment.admin.inc
@@ -98,13 +98,14 @@ function comment_admin_overview($form, &$form_state, $arg) {
     // Remove the first node title from the node_titles array and attach to
     // the comment.
     $comment->node_title = array_shift($node_titles);
+    $comment_attr_title = !empty($comment->comment_body[LANGUAGE_NONE][0]['value']) ? truncate_utf8($comment->comment_body[LANGUAGE_NONE][0]['value'], 128) : $comment->subject;
     $options[$comment->cid] = array(
       'subject' => array(
         'data' => array(
           '#type' => 'link',
           '#title' => $comment->subject,
           '#href' => 'comment/' . $comment->cid,
-          '#options' => array('attributes' => array('title' => truncate_utf8($comment->comment_body[LANGUAGE_NONE][0]['value'], 128)), 'fragment' => 'comment-' . $comment->cid),
+          '#options' => array('attributes' => array('title' => $comment_attr_title), 'fragment' => 'comment-' . $comment->cid),
         ),
       ),
       'author' => theme('username', array('account' => $comment)),
diff --git a/modules/comment/comment.module b/modules/comment/comment.module
index 393318a..27415ed 100644
--- a/modules/comment/comment.module
+++ b/modules/comment/comment.module
@@ -2040,7 +2040,7 @@ function comment_preview($comment) {
   $node = node_load($comment->nid);
 
   if (!form_get_errors()) {
-    $comment->format = $comment->comment_body[LANGUAGE_NONE][0]['format'];
+    $comment->format = isset($comment->comment_body[LANGUAGE_NONE][0]['format']) ? $comment->comment_body[LANGUAGE_NONE][0]['format'] : NULL;
     // Attach the user and time information.
     if (!empty($comment->name)) {
       $account = user_load_by_name($comment->name);
@@ -2161,18 +2161,21 @@ function comment_submit($comment) {
     // 1) Filter it into HTML
     // 2) Strip out all HTML tags
     // 3) Convert entities back to plain-text.
-    $comment_body = $comment->comment_body[LANGUAGE_NONE][0];
-    if (isset($comment_body['format'])) {
-      $comment_text = check_markup($comment_body['value'], $comment_body['format']);
-    }
-    else {
-      $comment_text = check_plain($comment_body['value']);
-    }
-    $comment->subject = truncate_utf8(trim(decode_entities(strip_tags($comment_text))), 29, TRUE);
-    // Edge cases where the comment body is populated only by HTML tags will
-    // require a default subject.
-    if ($comment->subject == '') {
-      $comment->subject = t('(No subject)');
+    if (isset($comment->comment_body[LANGUAGE_NONE][0])) {
+      $comment_body = $comment->comment_body[LANGUAGE_NONE][0];
+      if (isset($comment_body['format'])) {
+        $comment_text = check_markup($comment_body['value'], $comment_body['format']);
+      }
+      else {
+        $comment_text = check_plain($comment_body['value']);
+      }
+      $comment->subject = truncate_utf8(trim(decode_entities(strip_tags($comment_text))), 29, TRUE);
+
+      // Edge cases where the comment body is populated only by HTML tags will
+      // require a default subject.
+      if ($comment->subject == '') {
+        $comment->subject = t('(No subject)');
+      }
     }
   }
   return $comment;
