--- ConnectedSeekSlider_orig.cs	2011-04-10 12:29:14.406765001 +0100
+++ ConnectedSeekSlider.cs	2011-04-10 12:35:45.000000000 +0100
@@ -46,6 +46,7 @@
         private StreamPositionLabel stream_position_label;
         private Box box;
         private Hyena.Widgets.GrabHandle grabber;
+        private Hyena.Widgets.RatingEntry track_rating;
 
         public ConnectedSeekSlider () : this (SeekSliderLayout.Vertical)
         {
@@ -118,6 +119,10 @@
 
             hbox.PackStart (box, true, true, 0);
 
+            track_rating = new Hyena.Widgets.RatingEntry () { HasFrame = false, AlwaysShowEmptyStars = true };
+
+            hbox.PackStart ( track_rating, true, true, 0 );
+
             grabber = new Hyena.Widgets.GrabHandle () { NoShowAll = true };
             grabber.ControlWidthOf (seek_slider, 125, 1024, true);
 
@@ -141,6 +146,8 @@
         private bool OnTrackIntercept (Banshee.Collection.TrackInfo track)
         {
             transitioning = true;
+            track_rating.Value = track.Rating;
+            track_rating.Changed += OnRatingChanged;
             return false;
         }
 
@@ -186,6 +193,7 @@
                                 seek_slider.Duration = 0;
                                 seek_slider.SeekValue = 0;
                                 seek_slider.SetIdle ();
+                                track_rating.Value = 0;
                             }
                             break;
                         default:
@@ -218,5 +226,10 @@
         {
             ServiceManager.PlayerEngine.Position = (uint)seek_slider.Value;
         }
+
+        private void OnRatingChanged (object o, EventArgs args)
+        {
+            ServiceManager.PlayerEngine.CurrentTrack.Rating = track_rating.Value;
+        }
     }
 }
