diff --git a/modules/aggregator/aggregator.module b/modules/aggregator/aggregator.module
index 1e1686a..34ed3f5 100644
--- a/modules/aggregator/aggregator.module
+++ b/modules/aggregator/aggregator.module
@@ -63,6 +63,9 @@ function aggregator_theme() {
       'file' => 'aggregator.pages.inc',
       'template' => 'aggregator-feed-source',
     ),
+    'aggregator_block' => array(
+      'variables' => array('items' => NULL, 'read_more' => NULL),
+    ),
     'aggregator_block_item' => array(
       'variables' => array('item' => NULL, 'feed' => 0),
     ),
@@ -413,12 +416,12 @@ function aggregator_block_view($delta = '') {
     }
     $items = array();
     foreach ($result as $item) {
-      $items[] = theme('aggregator_block_item', array('item' => $item));
+      $items[] = theme('aggregator_block_item__' . $type . '_' . $id, array('item' => $item));
     }
 
     // Only display the block if there are items to show.
     if (count($items) > 0) {
-      $block['content'] = theme('item_list', array('items' => $items)) . $read_more;
+      $block['content'] = theme('aggregator_block__' . $type . '_' . $id, array('items' => $items, 'read_more' => $read_more));
     }
     return $block;
   }
@@ -690,6 +693,20 @@ function aggregator_category_load($cid) {
 }
 
 /**
+ * Returns HTML for a feed/category block
+ *
+ * @param $variables
+ *   An associative array containing:
+ *   - items: The items to be displayed.
+ *   - read_more: Read more link.
+ *
+ * @ingroup themeable
+ */
+function theme_aggregator_block($variables) {
+    return theme('item_list', array('items' => $variables['items'])) . $variables['read_more'];
+}
+
+/**
  * Returns HTML for an individual feed item for display in the block.
  *
  * @param $variables
