diff --git a/src/libtomahawk/Source.cpp b/src/libtomahawk/Source.cpp
index 0425c9361..bfeeb5fbe 100644
--- a/src/libtomahawk/Source.cpp
+++ b/src/libtomahawk/Source.cpp
@@ -175,6 +175,20 @@ Source::setFriendlyName( const QString& fname )
 }
 
 
+QString
+Source::dbFriendlyName() const
+{
+    return m_dbFriendlyName;
+}
+
+
+void
+Source::setDbFriendlyName( const QString& dbFriendlyName )
+{
+    m_dbFriendlyName = dbFriendlyName;
+}
+
+
 void
 Source::addCollection( const collection_ptr& c )
 {
@@ -228,7 +242,7 @@ Source::setOnline()
     if ( !isLocal() )
     {
         // ensure username is in the database
-        DatabaseCommand_addSource* cmd = new DatabaseCommand_addSource( m_nodeId, friendlyName() );
+        DatabaseCommand_addSource* cmd = new DatabaseCommand_addSource( m_nodeId, dbFriendlyName() );
         connect( cmd, SIGNAL( done( unsigned int, QString ) ),
                         SLOT( dbLoaded( unsigned int, const QString& ) ) );
         Database::instance()->enqueue( QSharedPointer<DatabaseCommand>(cmd) );
@@ -240,7 +254,7 @@ void
 Source::dbLoaded( unsigned int id, const QString& fname )
 {
     m_id = id;
-    setFriendlyName( fname );
+    setDbFriendlyName( fname );
 
     emit syncedWithDatabase();
 }
diff --git a/src/libtomahawk/Source.h b/src/libtomahawk/Source.h
index 1645c61eb..599b29d59 100644
--- a/src/libtomahawk/Source.h
+++ b/src/libtomahawk/Source.h
@@ -62,9 +62,17 @@ public:
     bool isOnline() const { return m_online || m_isLocal; }
 
     QString nodeId() const { return m_nodeId; }
+
     QString friendlyName() const;
     void setFriendlyName( const QString& fname );
 
+
+    // fallback when the normal friendlyname from cache is not available
+    // this is usually the jabber id or whatever was used when first connected
+    QString dbFriendlyName() const;
+    void setDbFriendlyName( const QString& dbFriendlyName );
+
+
 #ifndef ENABLE_HEADLESS
     QPixmap avatar( TomahawkUtils::ImageMode style = TomahawkUtils::Original, const QSize& size = QSize() );
 #endif
@@ -144,6 +152,7 @@ private:
     bool m_online;
     QString m_nodeId;
     QString m_friendlyname;
+    QString m_dbFriendlyName;
     int m_id;
     bool m_scrubFriendlyName;
     bool m_updateIndexWhenSynced;
diff --git a/src/libtomahawk/SourceList.cpp b/src/libtomahawk/SourceList.cpp
index e31dc7af2..a0204a19e 100644
--- a/src/libtomahawk/SourceList.cpp
+++ b/src/libtomahawk/SourceList.cpp
@@ -202,14 +202,14 @@ SourceList::get( const QString& username, const QString& friendlyName, bool auto
         {
             Q_ASSERT( !friendlyName.isEmpty() );
             source = source_ptr( new Source( -1, username ) );
-            source->setFriendlyName( friendlyName );
+            source->setDbFriendlyName( friendlyName );
             add( source );
         }
     }
     else
     {
         source = m_sources.value( username );
-        source->setFriendlyName( friendlyName );
+        source->setDbFriendlyName( friendlyName );
     }
 
     return source;
diff --git a/src/libtomahawk/database/DatabaseCommand_LoadAllSources.cpp b/src/libtomahawk/database/DatabaseCommand_LoadAllSources.cpp
index 155701a12..5ecd70a0f 100644
--- a/src/libtomahawk/database/DatabaseCommand_LoadAllSources.cpp
+++ b/src/libtomahawk/database/DatabaseCommand_LoadAllSources.cpp
@@ -40,7 +40,7 @@ DatabaseCommand_LoadAllSources::exec( DatabaseImpl* dbi )
     while ( query.next() )
     {
         source_ptr src( new Source( query.value( 0 ).toUInt(), query.value( 1 ).toString() ) );
-        src->setFriendlyName( query.value( 2 ).toString() );
+        src->setDbFriendlyName( query.value( 2 ).toString() );
         sources << src;
     }