diff --git a/includes/common.inc b/includes/common.inc
index d0649d7..df9f185 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -1886,6 +1886,10 @@ function format_date($timestamp, $type = 'medium', $format = '', $timezone = NUL
     case 'long':
       $format = variable_get('date_format_long', 'l, F j, Y - H:i');
       break;
+    
+    case 'machine':
+      $format = variable_get('date_format_machine', 'Y-m-d\TH:i:s\Z');
+      break;
 
     case 'custom':
       // No change to format.
diff --git a/modules/aggregator/aggregator-feed-source.tpl.php b/modules/aggregator/aggregator-feed-source.tpl.php
index 6a684bd..0737df5 100644
--- a/modules/aggregator/aggregator-feed-source.tpl.php
+++ b/modules/aggregator/aggregator-feed-source.tpl.php
@@ -13,22 +13,29 @@
  * - $source_image: Image set by the feed source.
  * - $source_description: Description set by the feed source.
  * - $source_url: URL to the feed source.
- * - $last_checked: How long ago the feed was checked locally.
+ * - $last_checked_human: How long ago the feed was checked locally, in human-readable format.
+ * - $last_checked_machine: The time when the feed was checked locally, in machine-readable format.
  *
  * @see template_preprocess()
  * @see template_preprocess_aggregator_feed_source()
  */
 ?>
-<div class="feed-source">
+<aside class="feed-source">
+
+  <?php if ($source_description): ?>
+    <header class="feed-description"><?php print $source_description; ?></header>
+  <?php endif; ?>
+
   <?php print $source_icon; ?>
   <?php print $source_image; ?>
-  <div class="feed-description">
-    <?php print $source_description; ?>
-  </div>
-  <div class="feed-url">
-    <em><?php print t('URL:'); ?></em> <a href="<?php print $source_url; ?>"><?php print $source_url; ?></a>
-  </div>
-  <div class="feed-updated">
-    <em><?php print t('Updated:'); ?></em> <?php print $last_checked; ?>
-  </div>
-</div>
+
+  <dl class="meta">
+
+    <dt class="feed-url"><?php print t('URL:'); ?></dd>
+    <dd><a href="<?php print $source_url; ?>"><?php print $source_url; ?></a></dd>
+
+    <dt class="feed-updated"><?php print t('Updated:'); ?></dt>
+    <dd><time datetime="<?php print $last_checked_machine; ?>"><?php print $last_checked_human; ?></time><dd>
+
+  </dl>
+</aside>
\ No newline at end of file
diff --git a/modules/aggregator/aggregator.pages.inc b/modules/aggregator/aggregator.pages.inc
index 53ecb36..d7d5070 100644
--- a/modules/aggregator/aggregator.pages.inc
+++ b/modules/aggregator/aggregator.pages.inc
@@ -510,15 +510,15 @@ function template_preprocess_aggregator_feed_source(&$variables) {
   $variables['source_image'] = $feed->image;
   $variables['source_description'] = aggregator_filter_xss($feed->description);
   $variables['source_url'] = check_url(url($feed->link, array('absolute' => TRUE)));
+  $variables['last_checked_machine'] = '';
+  $variables['last_checked_human'] = t('never');
 
   if ($feed->checked) {
-    $variables['last_checked'] = t('@time ago', array('@time' => format_interval(REQUEST_TIME - $feed->checked)));
-  }
-  else {
-    $variables['last_checked'] = t('never');
+    $variables['last_checked_machine'] = format_date($feed->checked, 'machine');
+    $variables['last_checked_human'] = t('@time ago', array('@time' => format_interval(REQUEST_TIME - $feed->checked)));
   }
 
   if (user_access('administer news feeds')) {
-    $variables['last_checked'] = l($variables['last_checked'], 'admin/config/services/aggregator');
+    $variables['last_checked_human'] = l($variables['last_checked_human'], 'admin/config/services/aggregator');
   }
 }

