diff --git a/src/libtomahawk/playlist/albumview.cpp b/src/libtomahawk/playlist/albumview.cpp
index 6e4ba2ee9..a0a73dcb2 100644
--- a/src/libtomahawk/playlist/albumview.cpp
+++ b/src/libtomahawk/playlist/albumview.cpp
@@ -25,6 +25,7 @@
 #include <qmath.h>
 
 #include "audio/audioengine.h"
+#include "context/ContextWidget.h"
 #include "tomahawksettings.h"
 #include "artist.h"
 #include "albumitem.h"
@@ -113,6 +114,20 @@ AlbumView::setAlbumModel( AlbumModel* model )
 }
 
 
+void
+AlbumView::currentChanged( const QModelIndex& current, const QModelIndex& previous )
+{
+    QListView::currentChanged( current, previous );
+
+    AlbumItem* item = m_model->itemFromIndex( m_proxyModel->mapToSource( current ) );
+    if ( item )
+    {
+        if ( !item->album().isNull() )
+            ViewManager::instance()->context()->setAlbum( item->album() );
+    }
+}
+
+
 void
 AlbumView::onItemActivated( const QModelIndex& index )
 {
diff --git a/src/libtomahawk/playlist/albumview.h b/src/libtomahawk/playlist/albumview.h
index 61cc14d43..80f38981b 100644
--- a/src/libtomahawk/playlist/albumview.h
+++ b/src/libtomahawk/playlist/albumview.h
@@ -71,6 +71,9 @@ protected:
     void paintEvent( QPaintEvent* event );
     void resizeEvent( QResizeEvent* event );
 
+protected slots:
+    virtual void currentChanged( const QModelIndex& current, const QModelIndex& previous );
+
 private slots:
     void onItemCountChanged( unsigned int items );
 
diff --git a/src/libtomahawk/playlist/artistview.cpp b/src/libtomahawk/playlist/artistview.cpp
index d2276b474..af00b8715 100644
--- a/src/libtomahawk/playlist/artistview.cpp
+++ b/src/libtomahawk/playlist/artistview.cpp
@@ -188,6 +188,7 @@ ArtistView::onScrollTimeout()
     }
 }
 
+
 void
 ArtistView::currentChanged( const QModelIndex& current, const QModelIndex& previous )
 {