diff --git a/core/modules/comment/comment.entity.inc b/core/modules/comment/comment.entity.inc
index 8db4167..796bbe8 100644
--- a/core/modules/comment/comment.entity.inc
+++ b/core/modules/comment/comment.entity.inc
@@ -25,11 +25,11 @@ class Comment extends Entity {
   public $pid;
 
   /**
-   * The comment language.
+   * The comment language code.
    *
    * @var string
    */
-  public $language = LANGUAGE_NONE;
+  public $langcode = LANGUAGE_NONE;
 
   /**
    * The comment title.
diff --git a/core/modules/comment/comment.install b/core/modules/comment/comment.install
index b71688a..57ebcae 100644
--- a/core/modules/comment/comment.install
+++ b/core/modules/comment/comment.install
@@ -167,7 +167,7 @@ function comment_schema() {
         'not null' => FALSE,
         'description' => "The comment author's home page address from the comment form, if user is anonymous, and the 'Anonymous users may/must leave their contact information' setting is turned on.",
       ),
-      'language' => array(
+      'langcode' => array(
         'description' => 'The {language}.langcode of this comment.',
         'type' => 'varchar',
         'length' => 12,
@@ -179,7 +179,7 @@ function comment_schema() {
       'comment_status_pid' => array('pid', 'status'),
       'comment_num_new' => array('nid', 'status', 'created', 'cid', 'thread'),
       'comment_uid' => array('uid'),
-      'comment_nid_language' => array('nid', 'language'),
+      'comment_nid_langcode' => array('nid', 'langcode'),
       'comment_created' => array('created'),
     ),
     'primary key' => array('cid'),
@@ -259,3 +259,21 @@ function comment_schema() {
 
   return $schema;
 }
+
+/**
+ * Rename {comment}.language to {comment}.langcode.
+ */
+function comment_update_8000() {
+  if (db_field_exists('comment', 'language')) {
+    db_drop_index('comment', 'comment_nid_langcode');
+    $langcode_spec = array(
+      'type' => 'varchar',
+      'length' => 12,
+      'not null' => TRUE,
+      'default' => '',
+      'description' => "Language code, e.g. 'de' or 'en-US'.",
+    );
+    db_change_field('comment', 'language', 'langcode', $langcode_spec);
+    db_add_index('comment', 'comment_nid_langcode', array('nid', 'langcode'));
+  }
+}
diff --git a/core/modules/comment/comment.module b/core/modules/comment/comment.module
index 7ad14e8..7dda96e 100644
--- a/core/modules/comment/comment.module
+++ b/core/modules/comment/comment.module
@@ -1833,7 +1833,7 @@ function comment_form($form, &$form_state, $comment) {
   );
 
   // Add internal comment properties.
-  foreach (array('cid', 'pid', 'nid', 'language', 'uid') as $key) {
+  foreach (array('cid', 'pid', 'nid', 'langcode', 'uid') as $key) {
     $form[$key] = array('#type' => 'value', '#value' => $comment->$key);
   }
   $form['node_type'] = array('#type' => 'value', '#value' => 'comment_node_' . $node->type);
diff --git a/core/modules/comment/comment.test b/core/modules/comment/comment.test
index 9a77853..18c21fe 100644
--- a/core/modules/comment/comment.test
+++ b/core/modules/comment/comment.test
@@ -458,7 +458,7 @@ class CommentInterfaceTest extends CommentHelperCase {
       'status' => COMMENT_PUBLISHED,
       'subject' => $this->randomName(),
       'hostname' => ip_address(),
-      'language' => LANGUAGE_NONE,
+      'langcode' => LANGUAGE_NONE,
       'comment_body' => array(LANGUAGE_NONE => array($this->randomName())),
     ));
     comment_save($comment);
@@ -680,7 +680,7 @@ class CommentInterfaceTest extends CommentHelperCase {
           'status' => COMMENT_PUBLISHED,
           'subject' => $this->randomName(),
           'hostname' => ip_address(),
-          'language' => LANGUAGE_NONE,
+          'langcode' => LANGUAGE_NONE,
           'comment_body' => array(LANGUAGE_NONE => array($this->randomName())),
         ));
         comment_save($comment);
diff --git a/core/modules/comment/comment.tokens.inc b/core/modules/comment/comment.tokens.inc
index 20de487..1c6a7ee 100644
--- a/core/modules/comment/comment.tokens.inc
+++ b/core/modules/comment/comment.tokens.inc
@@ -106,10 +106,10 @@ function comment_tokens($type, $tokens, array $data = array(), array $options =
   $url_options = array('absolute' => TRUE);
   if (isset($options['language'])) {
     $url_options['language'] = $options['language'];
-    $language_code = $options['language']->langcode;
+    $langcode = $options['language']->langcode;
   }
   else {
-    $language_code = NULL;
+    $langcode = NULL;
   }
   $sanitize = !empty($options['sanitize']);
 
@@ -155,9 +155,9 @@ function comment_tokens($type, $tokens, array $data = array(), array $options =
           break;
 
         case 'body':
-          if ($items = field_get_items('comment', $comment, 'comment_body', $language_code)) {
+          if ($items = field_get_items('comment', $comment, 'comment_body', $langcode)) {
             $instance = field_info_instance('comment', 'body', 'comment_body');
-            $field_langcode = field_language('comment', $comment, 'comment_body', $language_code);
+            $field_langcode = field_language('comment', $comment, 'comment_body', $langcode);
             $replacements[$original] = $sanitize ? _text_sanitize($instance, $field_langcode, $items[0], 'value') : $items[0]['value'];
           }
           break;
@@ -186,11 +186,11 @@ function comment_tokens($type, $tokens, array $data = array(), array $options =
           break;
 
         case 'created':
-          $replacements[$original] = format_date($comment->created, 'medium', '', NULL, $language_code);
+          $replacements[$original] = format_date($comment->created, 'medium', '', NULL, $langcode);
           break;
 
         case 'changed':
-          $replacements[$original] = format_date($comment->changed, 'medium', '', NULL, $language_code);
+          $replacements[$original] = format_date($comment->changed, 'medium', '', NULL, $langcode);
           break;
 
         case 'node':
diff --git a/core/modules/locale/locale.module b/core/modules/locale/locale.module
index 9330df1..bfab6d8 100644
--- a/core/modules/locale/locale.module
+++ b/core/modules/locale/locale.module
@@ -1028,9 +1028,9 @@ function locale_url_outbound_alter(&$path, &$options, $original_path) {
 function locale_form_comment_form_alter(&$form, &$form_state, $form_id) {
   // If a content type has multilingual support we set the content language as
   // comment language.
-  if ($form['language']['#value'] == LANGUAGE_NONE && locale_multilingual_node_type($form['#node']->type)) {
+  if ($form['langcode']['#value'] == LANGUAGE_NONE && locale_multilingual_node_type($form['#node']->type)) {
     global $language_content;
-    $form['language']['#value'] = $language_content->langcode;
+    $form['langcode']['#value'] = $language_content->langcode;
   }
 }
 
diff --git a/core/modules/locale/locale.test b/core/modules/locale/locale.test
index fae4688..a9cb37b 100644
--- a/core/modules/locale/locale.test
+++ b/core/modules/locale/locale.test
@@ -2507,8 +2507,8 @@ class LocaleCommentLanguageFunctionalTest extends DrupalWebTestCase {
           ->orderBy('cid', 'DESC')
           ->execute()
           ->fetchObject();
-        $args = array('%node_language' => $node_langcode, '%comment_language' => $comment->language, '%langcode' => $langcode);
-        $this->assertEqual($comment->language, $langcode, t('The comment posted with content language %langcode and belonging to the node with language %node_language has language %comment_language', $args));
+        $args = array('%node_language' => $node_langcode, '%comment_language' => $comment->langcode, '%langcode' => $langcode);
+        $this->assertEqual($comment->langcode, $langcode, t('The comment posted with content language %langcode and belonging to the node with language %node_language has language %comment_language', $args));
       }
     }
   }
