--- modules/aggregator/aggregator.module.orig	2010-05-28 18:06:59.000000000 +0200
+++ modules/aggregator/aggregator.module	2010-11-21 00:55:02.000000000 +0100
@@ -583,6 +583,9 @@ function aggregator_element_data($parser
  */
 function aggregator_refresh($feed) {
   global $channel, $image;
+  // Store current user permission to administer news feeds
+  // display aggregator system messages based on permissions
+  $msg_view = user_access("administer news feeds");
 
   // Generate conditional GET headers.
   $headers = array();
@@ -600,7 +603,9 @@ function aggregator_refresh($feed) {
   switch ($result->code) {
     case 304:
       db_query('UPDATE {aggregator_feed} SET checked = %d WHERE fid = %d', time(), $feed['fid']);
-      drupal_set_message(t('There is no new syndicated content from %site.', array('%site' => $feed['title'])));
+      if ($msg_view) {
+        drupal_set_message(t('There is no new syndicated content from %site.', array('%site' => $feed['title'])));
+      }
       break;
     case 301:
       $feed['url'] = $result->redirect_url;
@@ -639,7 +644,9 @@ function aggregator_refresh($feed) {
         cache_clear_all();
 
         watchdog('aggregator', 'There is new syndicated content from %site.', array('%site' => $feed['title']));
-        drupal_set_message(t('There is new syndicated content from %site.', array('%site' => $feed['title'])));
+        if ($msg_view){
+          drupal_set_message(t('There is new syndicated content from %site.', array('%site' => $feed['title'])));
+        }
       }
       break;
     default:
