diff --git a/src/qtui/time_slider.cc b/src/qtui/time_slider.cc
index e943deb..45f1fc0 100644
--- a/src/qtui/time_slider.cc
+++ b/src/qtui/time_slider.cc
@@ -120,3 +120,14 @@ void TimeSlider::released ()
     if (! aud_drct_get_paused ())
         m_timer.start (250);
 }
+
+void TimeSlider::mousePressEvent (QMouseEvent * event)
+{
+    if (event->button () == Qt::LeftButton)
+    {
+        setValue (QStyle::sliderValueFromPosition (minimum (), maximum (), event->x (), width ()));
+        event->accept ();
+    }
+
+    QSlider::mousePressEvent (event);
+}
diff --git a/src/qtui/time_slider.h b/src/qtui/time_slider.h
index 00058b6..05325b3 100644
--- a/src/qtui/time_slider.h
+++ b/src/qtui/time_slider.h
@@ -23,6 +23,8 @@
 #include <QLabel>
 #include <QSlider>
 #include <QTimer>
+#include <QStyle>
+#include <QMouseEvent>
 
 class TimeSlider : public QSlider
 {
@@ -42,6 +44,8 @@ private:
     void pressed ();
     void released ();
 
+    void mousePressEvent (QMouseEvent * event);
+
     static void start_stop_hook (void *, void * me)
         { ((TimeSlider *) me)->start_stop (); }
 
