diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs b/src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs
index 654d6ce..fb0cf48 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs
@@ -215,7 +215,12 @@ namespace Banshee.Gui
         
         private void OnPreviousAction (object o, EventArgs args)
         {
-            ServiceManager.PlaybackController.Previous ();
+            const int delay = 4000; // ms
+            if (ServiceManager.PlayerEngine.Position < delay) {
+                ServiceManager.PlaybackController.Previous ();
+            } else {
+                OnRestartSongAction (o, args);
+            }
         }
 
         private void OnSeekToAction (object o, EventArgs args)
