diff --git a/modules/aggregator/aggregator-feed-source.tpl.php b/modules/aggregator/aggregator-feed-source.tpl.php
index 6a684bd..a1774e9 100644
--- a/modules/aggregator/aggregator-feed-source.tpl.php
+++ b/modules/aggregator/aggregator-feed-source.tpl.php
@@ -19,16 +19,22 @@
  * @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:'); ?></dt>
+    <dd><?php print $source_url; ?></dd>
+
+    <dt class="feed-updated"><?php print t('Updated:'); ?></dt>
+    <dd><?php print $last_checked; ?><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..e6a0b94 100644
--- a/modules/aggregator/aggregator.pages.inc
+++ b/modules/aggregator/aggregator.pages.inc
@@ -506,19 +506,21 @@ function template_preprocess_aggregator_summary_item(&$variables) {
 function template_preprocess_aggregator_feed_source(&$variables) {
   $feed = $variables['feed'];
 
-  $variables['source_icon'] = theme('feed_icon', array('url' => $feed->url, 'title' => t('!title feed', array('!title' => $feed->title))));
+  $variables['source_icon'] = theme('feed_icon', array(
+      'url' => $feed->url, 
+      'title' => t('!title feed', array('!title' => $feed->title))
+    )
+  );
   $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['source_url'] = l($feed->link, $feed->link, array('absolute' => TRUE));
+  $variables['last_checked'] = 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');
-  }
-
-  if (user_access('administer news feeds')) {
-    $variables['last_checked'] = l($variables['last_checked'], 'admin/config/services/aggregator');
+    $variables['last_checked'] = theme('datetime', array(
+        'timestamp' => $feed->checked,
+        'offset' => REQUEST_TIME,
+        'href' => (user_access('administer news feeds')) ? 'admin/config/services/aggregator' : '',
+      )
+    );
   }
 }
