Index: src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs
===================================================================
--- src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs	(revision 2227)
+++ src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs	(working copy)
@@ -40,6 +40,7 @@
 using Banshee.MediaEngine;
 using Banshee.Widgets;
 using Banshee.Configuration;
+using Banshee.Sources;
 
 public static class PluginModuleEntry
 {
@@ -75,6 +76,8 @@
         private EventBox event_box;
         private NotificationArea notif_area;
         private Menu menu;
+        private MenuItem rating_menu_item = null;
+        private RatingMenu ratingMenu;
         private ActionGroup actions;
         private uint ui_manager_id;
 
@@ -102,13 +105,24 @@
             actions.Add(new ActionEntry [] {
                 new ActionEntry("CloseAction", Stock.Close,
                     Catalog.GetString("_Close"), "<Control>W",
-                    Catalog.GetString("Close"), CloseWindow)
+                    Catalog.GetString("Close"), CloseWindow),
+                
+            new ActionEntry("NotificationAreaIconRate", null,
+                    Catalog.GetString("Rating"), null,
+                    Catalog.GetString("Set rating for currently playing song"), null)
+
             });
 
             Globals.ActionManager.UI.InsertActionGroup(actions, 0);
             ui_manager_id = Globals.ActionManager.UI.AddUiFromResource("NotificationAreaIconMenu.xml");      
             
             menu = (Menu) Globals.ActionManager.UI.GetWidget("/NotificationAreaIconMenu");
+            rating_menu_item = Globals.ActionManager.GetWidget("/NotificationAreaIconMenu/Rating") as MenuItem;
+            ratingMenu = new RatingMenu();
+            ratingMenu.Activated += OnRatingActivated;
+            rating_menu_item.Submenu = ratingMenu;
+            ToggleRatingMenuSensitive();
+            ratingMenu.ShowAll();
             menu.ShowAll();
         
             popup = new TrackInfoPopup();
@@ -308,6 +322,19 @@
                     break;
             }
         }
+        private void OnRatingActivated(object o, EventArgs args)
+        {
+            PlayerEngineCore.CurrentTrack.Rating = ratingMenu.Value;
+        }
+        
+        private void ToggleRatingMenuSensitive() {
+            if (PlayerEngineCore.CurrentTrack != null && (SourceManager.ActiveSource is LibrarySource || SourceManager.ActiveSource is PlaylistSource)) {
+                Globals.ActionManager["NotificationAreaIconRate"].Sensitive = true;
+                ratingMenu.Value = PlayerEngineCore.CurrentTrack.Rating;
+            } else {
+                Globals.ActionManager["NotificationAreaIconRate"].Sensitive = false;
+            }
+        }
 
         private void PositionMenu(Menu menu, out int x, out int y, out bool push_in) 
         {
@@ -424,6 +451,7 @@
                     break;
                 case PlayerEngineEvent.StartOfStream:
                 case PlayerEngineEvent.TrackInfoUpdated:
+                    ToggleRatingMenuSensitive();
                     FillPopup();
                     ShowNotification();
                     break;
@@ -431,6 +459,7 @@
                     // only hide the popup when we don't play again after 250ms
                     GLib.Timeout.Add(250, delegate {
                         if (PlayerEngineCore.CurrentState != PlayerEngineState.Playing) {
+                            ToggleRatingMenuSensitive();
                             popup.Duration = 0;
                             popup.Position = 0;
                             can_show_popup = false;
Index: src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconMenu.xml
===================================================================
--- src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconMenu.xml	(revision 2227)
+++ src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconMenu.xml	(working copy)
@@ -3,6 +3,8 @@
         <menuitem name="PlayPause" action="PlayPauseAction" />
         <menuitem name="Previous" action="PreviousAction" />
         <menuitem name="Next" action="NextAction" />
+        <separator />
+        <menuitem name="Rating" action="NotificationAreaIconRate" />
         <!--<separator />
         <menuitem name="RepeatNone" action="RepeatNoneAction" />
         <menuitem name="RepeatAll" action="RepeatAllAction" />
