diff --git a/src/libtomahawk/playlist/QueueView.cpp b/src/libtomahawk/playlist/QueueView.cpp
index 004dfe9ef..32cf3caf5 100644
--- a/src/libtomahawk/playlist/QueueView.cpp
+++ b/src/libtomahawk/playlist/QueueView.cpp
@@ -24,6 +24,7 @@
 #include "widgets/HeaderLabel.h"
 #include "playlist/QueueProxyModel.h"
 #include "utils/Logger.h"
+#include "Pipeline.h"
 #include "PlaylistView.h"
 #include "Source.h"
 #include "TomahawkSettings.h"
@@ -67,7 +68,14 @@ QueueView::QueueView( AnimatedSplitter* parent )
     // Set initial state
     onHidden( this, false );
 
-    restoreState();
+    if ( Pipeline::instance()->isRunning() )
+    {
+        restoreState();
+    }
+    else
+    {
+        connect( Pipeline::instance(), SIGNAL( running() ), SLOT( restoreState() ) );
+    }
 }
 
 
diff --git a/src/libtomahawk/playlist/QueueView.h b/src/libtomahawk/playlist/QueueView.h
index 4988c81b4..91e61c4c8 100644
--- a/src/libtomahawk/playlist/QueueView.h
+++ b/src/libtomahawk/playlist/QueueView.h
@@ -61,9 +61,10 @@ private slots:
     void updateLabel();
     void onAnimationFinished();
 
+    void restoreState();
+
 private:
     void saveState();
-    void restoreState();
 
     Ui::QueueView* ui;
     QTimer* m_dragTimer;