--- aggregator.module.orig	2010-08-14 21:37:15.000000000 +0530
+++ aggregator.module	2010-08-14 23:04:07.000000000 +0530
@@ -582,7 +582,11 @@ function aggregator_element_data($parser
  *   An associative array describing the feed to be refreshed.
  */
 function aggregator_refresh($feed) {
-  global $channel, $image;
+  global $channel, $image, $user;
+  
+  // 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 +604,9 @@ function aggregator_refresh($feed) {
   switch ($result->code) {
     case 304:
       db_query('UPDATE {aggregator_feed} SET checked = %d WHERE fid = %d', time(), $feed['fid']);
+      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,13 +645,17 @@ 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:
       watchdog('aggregator', 'The feed from %site seems to be broken, due to "%error".', array('%site' => $feed['title'], '%error' => $result->code .' '. $result->error), WATCHDOG_WARNING);
-      drupal_set_message(t('The feed from %site seems to be broken, because of error "%error".', array('%site' => $feed['title'], '%error' => $result->code .' '. $result->error)));
-  }
+      if ($msg_view){
+      	drupal_set_message(t('The feed from %site seems to be broken, because of error "%error".', array('%site' => $feed['title'], '%error' => $result->code .' '. $result->error))); 
+      }
+   }
 }
 
 /**
@@ -706,6 +716,11 @@ function aggregator_parse_feed(&$data, $
   $image = array();
   $channel = array();
 
+
+  // Store current user permission to administer news feeds
+  // display aggregator system messages based on permissions
+  $msg_view = user_access("administer news feeds");
+
   // parse the data:
   $xml_parser = drupal_xml_parser_create($data);
   xml_set_element_handler($xml_parser, 'aggregator_element_start', 'aggregator_element_end');
@@ -713,7 +728,9 @@ function aggregator_parse_feed(&$data, $
 
   if (!xml_parse($xml_parser, $data, 1)) {
     watchdog('aggregator', 'The feed from %site seems to be broken, due to an error "%error" on line %line.', array('%site' => $feed['title'], '%error' => xml_error_string(xml_get_error_code($xml_parser)), '%line' => xml_get_current_line_number($xml_parser)), WATCHDOG_WARNING);
-    drupal_set_message(t('The feed from %site seems to be broken, because of error "%error" on line %line.', array('%site' => $feed['title'], '%error' => xml_error_string(xml_get_error_code($xml_parser)), '%line' => xml_get_current_line_number($xml_parser))), 'error');
+    if($msg_view){
+      drupal_set_message(t('The feed from %site seems to be broken, because of error "%error" on line %line.', array('%site' => $feed['title'], '%error' => xml_error_string(xml_get_error_code($xml_parser)), '%line' => xml_get_current_line_number($xml_parser))), 'error');
+    }
     return 0;
   }
   xml_parser_free($xml_parser);
