diff --git modules/aggregator/aggregator.module modules/aggregator/aggregator.module
index 672d078..7b756fa 100644
--- modules/aggregator/aggregator.module
+++ modules/aggregator/aggregator.module
@@ -583,24 +583,46 @@ function aggregator_remove($feed) {
     ->execute();
 }
 
+/**
+ * Loads standard variables used by aggregator.
+ */
 function _aggregator_get_variables() {
   // Fetch the feed.
   $fetcher = variable_get('aggregator_fetcher', 'aggregator');
-  if ($fetcher == 'aggregator') {
-    include_once DRUPAL_ROOT . '/' . drupal_get_path('module', 'aggregator') . '/aggregator.fetcher.inc';
-  }
   $parser = variable_get('aggregator_parser', 'aggregator');
-  if ($parser == 'aggregator') {
-    include_once DRUPAL_ROOT . '/' . drupal_get_path('module', 'aggregator') . '/aggregator.parser.inc';
-  }
   $processors = variable_get('aggregator_processors', array('aggregator'));
-  if (in_array('aggregator', $processors)) {
-    include_once DRUPAL_ROOT . '/' . drupal_get_path('module', 'aggregator') . '/aggregator.processor.inc';
-  }
   return array($fetcher, $parser, $processors);
 }
 
 /**
+ * Implements hook_hook_info().
+ */
+function aggregator_hook_info() {
+  return array(
+    'aggregator_fetch' => array(
+      'group' => 'fetcher',
+    ),
+    'aggregator_fetch_info' => array(
+      'group' => 'fetcher',
+    ),
+    'aggregator_parse' => array(
+      'group' => 'parser',
+    ),
+    'aggregator_parse_info' => array(
+      'group' => 'parser'
+    ),
+    'aggregator_process' => array(
+      'group' => 'processor',
+    ),
+    'aggregator_process_info' => array(
+      'group' => 'processor',
+    ),
+    'aggregator_remove' => array(
+      'group' => 'processor',
+    ),
+  );
+}
+/**
  * Checks a news feed for new items.
  *
  * @param $feed
