diff --git a/src/libtomahawk/audio/audioengine.cpp b/src/libtomahawk/audio/audioengine.cpp
index 131748077..e86a9b6d1 100644
--- a/src/libtomahawk/audio/audioengine.cpp
+++ b/src/libtomahawk/audio/audioengine.cpp
@@ -139,7 +139,7 @@ AudioEngine::pause()
 
 
 void
-AudioEngine::stop()
+AudioEngine::stop( bool sendNotification )
 {
     qDebug() << Q_FUNC_INFO;
 
@@ -151,8 +151,10 @@ AudioEngine::stop()
     
     setCurrentTrack( Tomahawk::result_ptr() );
     emit stopped();
-    Tomahawk::InfoSystem::InfoSystem::instance()->pushInfo(
-       s_aeInfoIdentifier, Tomahawk::InfoSystem::InfoNowStopped, QVariant() );
+
+    if ( sendNotification )
+        Tomahawk::InfoSystem::InfoSystem::instance()->pushInfo(
+            s_aeInfoIdentifier, Tomahawk::InfoSystem::InfoNowStopped, QVariant() );
 }
 
 
@@ -369,7 +371,7 @@ AudioEngine::loadNextTrack()
         loadTrack( result );
     else
     {
-        stop();
+        stop( false );
         if ( m_playlist && m_playlist->retryMode() == Tomahawk::PlaylistInterface::Retry )
         {
             if ( !wasRetrying )
@@ -398,7 +400,9 @@ AudioEngine::playItem( Tomahawk::PlaylistInterface* playlist, const Tomahawk::re
     setPlaylist( playlist );
     m_currentTrackPlaylist = playlist;
 
-    if ( result.isNull() && m_playlist->retryMode() == PlaylistInterface::Retry )
+    if ( !result.isNull() )
+        loadTrack( result );
+    else if ( m_playlist->retryMode() == PlaylistInterface::Retry )
     {
         Tomahawk::InfoSystem::InfoCriteriaHash retryInfo;
         retryInfo["message"] = QString( "The current track could not be resolved. Tomahawk will keep trying..." );
@@ -408,8 +412,6 @@ AudioEngine::playItem( Tomahawk::PlaylistInterface* playlist, const Tomahawk::re
         m_retryTimer.setInterval( playlist->retryInterval() );
         m_retryTimer.start();
     }
-    else
-        loadTrack( result );
 }
 
 
diff --git a/src/libtomahawk/audio/audioengine.h b/src/libtomahawk/audio/audioengine.h
index cf812dcf1..92f687518 100644
--- a/src/libtomahawk/audio/audioengine.h
+++ b/src/libtomahawk/audio/audioengine.h
@@ -65,7 +65,7 @@ public slots:
     void playPause();
     void play();
     void pause();
-    void stop();
+    void stop( bool sendNotification = true );
 
     void previous();
     void next();