diff --git a/modules/comment/comment.module b/modules/comment/comment.module
index 3c94200..7700e9a 100644
--- a/modules/comment/comment.module
+++ b/modules/comment/comment.module
@@ -1914,7 +1914,6 @@ function comment_form($form, &$form_state, $comment) {
   if ($is_admin) {
     $author = (!$comment->uid && $comment->name ? $comment->name : $comment->registered_name);
     $status = (isset($comment->status) ? $comment->status : COMMENT_NOT_PUBLISHED);
-    $date = (!empty($comment->date) ? $comment->date : format_date($comment->created, 'custom', 'Y-m-d H:i O'));
   }
   else {
     if ($user->uid) {
@@ -1924,7 +1923,11 @@ function comment_form($form, &$form_state, $comment) {
       $author = ($comment->name ? $comment->name : '');
     }
     $status = (user_access('skip comment approval') ? COMMENT_PUBLISHED : COMMENT_NOT_PUBLISHED);
+  }
+
   $date = '';
+  if ($comment->cid) {
+    $date = !empty($comment->date) ? $comment->date : format_date($comment->created, 'custom', 'Y-m-d H:i:s O');
   }
 
   // Add the author name field depending on the current user.
diff --git a/modules/comment/comment.test b/modules/comment/comment.test
index 9e69ba6..a49a4f0 100644
--- a/modules/comment/comment.test
+++ b/modules/comment/comment.test
@@ -995,7 +995,7 @@ class CommentPreviewTest extends CommentHelperCase {
    */
   function testCommentEditPreviewSave() {
     $langcode = LANGUAGE_NONE;
-    $web_user = $this->drupalCreateUser(array('access comments', 'post comments', 'skip comment approval'));
+    $web_user = $this->drupalCreateUser(array('access comments', 'post comments', 'skip comment approval', 'edit own comments'));
     $this->drupalLogin($this->admin_user);
     $this->setCommentPreview(DRUPAL_OPTIONAL);
     $this->setCommentForm(TRUE);
@@ -1009,7 +1009,7 @@ class CommentPreviewTest extends CommentHelperCase {
     $edit['date'] = '2008-03-02 17:23 +0300';
     $raw_date = strtotime($edit['date']);
     $expected_text_date = format_date($raw_date);
-    $expected_form_date = format_date($raw_date, 'custom', 'Y-m-d H:i O');
+    $expected_form_date = format_date($raw_date, 'custom', 'Y-m-d H:i:s O');
     $comment = $this->postComment($this->node, $edit['subject'], $edit['comment_body[' . $langcode . '][0][value]'], TRUE);
     $this->drupalPost('comment/' . $comment->id . '/edit', $edit, t('Preview'));
 
@@ -1051,7 +1051,17 @@ class CommentPreviewTest extends CommentHelperCase {
     $this->assertEqual($comment_loaded->comment_body[$langcode][0]['value'], $edit['comment_body[' . $langcode . '][0][value]'], 'Comment body loaded.');
     $this->assertEqual($comment_loaded->name, $edit['name'], 'Name loaded.');
     $this->assertEqual($comment_loaded->created, $raw_date, 'Date loaded.');
+    $this->drupalLogout();
 
+    // Check that the date and time of the comment are correct when edited by
+    // non-admin users.
+    $user_edit = array();
+    $expected_created_time = $comment_loaded->created;
+    $this->drupalLogin($web_user);
+    $this->drupalPost('comment/' . $comment->id . '/edit', $user_edit, t('Save'));
+    $comment_loaded = comment_load($comment->id, TRUE);
+    $this->assertEqual($comment_loaded->created, $expected_created_time, 'Expected date and time for comment edited.');
+    $this->drupalLogout();
   }
 
 }
diff --git a/modules/rdf/rdf.module b/modules/rdf/rdf.module
index 877b598..674513f 100644
--- a/modules/rdf/rdf.module
+++ b/modules/rdf/rdf.module
@@ -511,35 +511,21 @@ function rdf_preprocess_node(&$variables) {
   }
 
   // Adds RDFa markup annotating the number of comments a node has.
-  if (isset($variables['node']->comment_count) && !empty($variables['node']->rdf_mapping['comment_count']['predicates'])) {
-    // Annotates the 'x comments' link in teaser view.
-    if (isset($variables['content']['links']['comment']['#links']['comment-comments'])) {
-      $comment_count_attributes['property'] = $variables['node']->rdf_mapping['comment_count']['predicates'];
-      $comment_count_attributes['content'] = $variables['node']->comment_count;
-      $comment_count_attributes['datatype'] = $variables['node']->rdf_mapping['comment_count']['datatype'];
-      // According to RDFa parsing rule number 4, a new subject URI is created
-      // from the href attribute if no rel/rev attribute is present. To get the
-      // original node URL from the about attribute of the parent container we
-      // set an empty rel attribute which triggers rule number 5. See
-      // http://www.w3.org/TR/rdfa-syntax/#sec_5.5.
-      $comment_count_attributes['rel'] = '';
-      $variables['content']['links']['comment']['#links']['comment-comments']['attributes'] += $comment_count_attributes;
-    }
-    // In full node view, the number of comments is not displayed by
-    // node.tpl.php so it is expressed in RDFa in the <head> tag of the HTML
-    // page.
-    if ($variables['page'] && user_access('access comments')) {
-      $element = array(
-        '#tag' => 'meta',
-        '#attributes' => array(
+  if (isset($variables['node']->comment_count) &&
+      !empty($variables['node']->rdf_mapping['comment_count']['predicates']) &&
+      user_access('access comments')) {
+    // Adds RDFa markup for the comment count near the node title as metadata.
+    $comment_count_attributes = array(
       'about' => $variables['node_url'],
       'property' => $variables['node']->rdf_mapping['comment_count']['predicates'],
       'content' => $variables['node']->comment_count,
       'datatype' => $variables['node']->rdf_mapping['comment_count']['datatype'],
-        ),
     );
-      drupal_add_html_head($element, 'rdf_node_comment_count');
-    }
+    $element = array(
+      '#theme' => 'rdf_metadata',
+      '#metadata' => array($comment_count_attributes),
+    );
+    $variables['title_suffix']['rdf_meta_comment_count'] = $element;
   }
 }
 
diff --git a/modules/rdf/rdf.test b/modules/rdf/rdf.test
index 370dbb2..55ab1f1 100644
--- a/modules/rdf/rdf.test
+++ b/modules/rdf/rdf.test
@@ -461,15 +461,13 @@ class RdfCommentAttributesTestCase extends CommentHelperCase {
 
     // Tests number of comments in teaser view.
     $this->drupalGet('node');
-    $comment_count_teaser = $this->xpath('//div[contains(@typeof, "sioc:Item")]//li[contains(@class, "comment-comments")]/a[contains(@property, "sioc:num_replies") and contains(@content, "2") and @datatype="xsd:integer"]');
+    $node_url = url('node/' . $this->node1->nid);
+    $comment_count_teaser = $this->xpath('//span[@about=:node-url and @property="sioc:num_replies" and @content="2" and @datatype="xsd:integer"]', array(':node-url' => $node_url));
     $this->assertTrue(!empty($comment_count_teaser), 'RDFa markup for the number of comments found on teaser view.');
-    $comment_count_link = $this->xpath('//div[@about=:url]//a[contains(@property, "sioc:num_replies") and @rel=""]', array(':url' => url("node/{$this->node1->nid}")));
-    $this->assertTrue(!empty($comment_count_link), 'Empty rel attribute found in comment count link.');
 
     // Tests number of comments in full node view.
-    $this->drupalGet('node/' . $this->node1->nid);
-    $node_url = url('node/' . $this->node1->nid);
-    $comment_count_teaser = $this->xpath('/html/head/meta[@about=:node-url and @property="sioc:num_replies" and @content="2" and @datatype="xsd:integer"]', array(':node-url' => $node_url));
+    $this->drupalGet($node_url);
+    $comment_count_teaser = $this->xpath('//span[@about=:node-url and @property="sioc:num_replies" and @content="2" and @datatype="xsd:integer"]', array(':node-url' => $node_url));
     $this->assertTrue(!empty($comment_count_teaser), 'RDFa markup for the number of comments found on full node view.');
   }
 
