Index: modules/aggregator/aggregator.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/aggregator/aggregator.module,v
retrieving revision 1.426
diff -u -r1.426 aggregator.module
--- modules/aggregator/aggregator.module	12 Oct 2009 15:54:59 -0000	1.426
+++ modules/aggregator/aggregator.module	15 Oct 2009 21:14:39 -0000
@@ -587,6 +587,7 @@
 function aggregator_refresh($feed) {
   // Store feed URL to track changes.
   $feed_url = $feed->url;
+  $clear_cache = false;
 
   // Fetch the feed.
   list($fetcher, $parser, $processors) = _aggregator_get_variables();
@@ -625,12 +626,21 @@
           module_invoke($processor, 'aggregator_process', $feed);
         }
       }
+
+      $clear_cache = true;
     }
   }
 
   // Expire old feed items.
   if (function_exists('aggregator_expire')) {
     aggregator_expire($feed);
+
+    $clear_cache = true;
+  }
+
+  // Clear the cache.
+  if ($clear_cache) {
+    cache_clear_all();
   }
 }
 
Index: modules/aggregator/aggregator.parser.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/aggregator/aggregator.parser.inc,v
retrieving revision 1.6
diff -u -r1.6 aggregator.parser.inc
--- modules/aggregator/aggregator.parser.inc	12 Oct 2009 15:54:59 -0000	1.6
+++ modules/aggregator/aggregator.parser.inc	15 Oct 2009 21:14:40 -0000
@@ -52,9 +52,6 @@
     $feed->etag = $etag;
     $feed->modified = $modified;
 
-    // Clear the cache.
-    cache_clear_all();
-
     return TRUE;
   }
 
