diff --git a/src/libtomahawk/Album.cpp b/src/libtomahawk/Album.cpp
index eba5eb3d7..5806e3ffd 100644
--- a/src/libtomahawk/Album.cpp
+++ b/src/libtomahawk/Album.cpp
@@ -27,6 +27,7 @@
 #include "Query.h"
 #include "Source.h"
 
+#include "utils/TomahawkUtilsGui.h"
 #include "utils/Logger.h"
 
 #include <QReadWriteLock>
@@ -229,8 +230,11 @@ Album::cover( const QSize& size, bool forceLoad ) const
 
     if ( !m_cover && !m_coverBuffer.isEmpty() )
     {
-        m_cover = new QPixmap();
-        m_cover->loadFromData( m_coverBuffer );
+        QPixmap cover;
+        cover.loadFromData( m_coverBuffer );
+        m_coverBuffer.clear();
+
+        m_cover = new QPixmap( TomahawkUtils::squareCenterPixmap( cover ) );
     }
 
     if ( m_cover && !m_cover->isNull() && !size.isEmpty() )
diff --git a/src/libtomahawk/Album.h b/src/libtomahawk/Album.h
index c9112568a..2eb2abb49 100644
--- a/src/libtomahawk/Album.h
+++ b/src/libtomahawk/Album.h
@@ -93,12 +93,12 @@ private:
     QString m_sortname;
 
     artist_ptr m_artist;
-    QByteArray m_coverBuffer;
 
     bool m_coverLoaded;
     mutable bool m_coverLoading;
     mutable QString m_uuid;
 
+    mutable QByteArray m_coverBuffer;
 #ifndef ENABLE_HEADLESS
     mutable QPixmap* m_cover;
     mutable QHash< int, QPixmap > m_coverCache;