=== modified file 'modules/aggregator/aggregator.module'
--- modules/aggregator/aggregator.module	2007-09-05 08:31:48 +0000
+++ modules/aggregator/aggregator.module	2007-09-07 10:46:24 +0000
@@ -332,15 +332,33 @@ function aggregator_block($op = 'list', 
  * Add/edit/delete aggregator categories.
  */
 function aggregator_save_category($edit) {
-  if (!empty($edit['cid']) && !empty($edit['title'])) {
-    db_query("UPDATE {aggregator_category} SET title = '%s', description = '%s' WHERE cid = %d", $edit['title'], $edit['description'], $edit['cid']);
-  }
-  else if (!empty($edit['cid'])) {
-    db_query('DELETE FROM {aggregator_category} WHERE cid = %d', $edit['cid']);
+  $path = 'aggregator/categories/';
+  if (!empty($edit['cid'])) {
+    $mlid = db_result(db_query("SELECT mlid FROM {menu_links} WHERE customized = 0 AND link_path = '%s'", $path . $edit['cid']));
+    $menu_link = menu_link_load($mlid);
+    if (!empty($edit['title'])) {
+      db_query("UPDATE {aggregator_category} SET title = '%s', description = '%s' WHERE cid = %d", $edit['title'], $edit['description'], $edit['cid']);
+      if ($menu_link) {
+        $menu_link['link_title'] = $edit['title'];
+        menu_link_save($menu_link);
+      }
+    }
+    else {
+      db_query('DELETE FROM {aggregator_category} WHERE cid = %d', $edit['cid']);
+      if ($menu_link) {
+        menu_link_delete($menu_link['cid']);
+      }
+    }
   }
   else if (!empty($edit['title'])) {
     // A single unique id for bundles and feeds, to use in blocks
     db_query("INSERT INTO {aggregator_category} (title, description, block) VALUES ('%s', '%s', 5)", $edit['title'], $edit['description']);
+    $cid = db_last_insert_id('aggregator', 'cid');
+    $menu_link = array(
+      'link_title' => $edit['title'],
+      'link_path' => $path . $cid,
+    );
+    menu_link_save($menu_link);
   }
 }
 

