Index: amarok/src/collectiondb.cpp
===================================================================
--- amarok/src/collectiondb.cpp	(revision 779550)
+++ amarok/src/collectiondb.cpp	(working copy)
@@ -3254,13 +3254,16 @@
 }
 
 QString
-CollectionDB::uniqueIdFromUrl( const KURL &url )
+CollectionDB::uniqueIdFromUrl( const KURL &url, bool ignorescanning)
 {
     MountPointManager *mpm = MountPointManager::instance();
     int currdeviceid = mpm->getIdForUrl( url.path() );
     QString currurl = escapeString( mpm->getRelativePath( currdeviceid, url.path() ) );
 
-    bool scanning = ( ScanController::instance() && ScanController::instance()->tablesCreated() );
+    bool scanning = false;
+    if (!ignorescanning)
+        scanning = ( ScanController::instance() && ScanController::instance()->tablesCreated() );
+
     QStringList uid = query( QString(
             "SELECT uniqueid "
             "FROM uniqueid%1 "
Index: amarok/src/metabundle.h
===================================================================
--- amarok/src/metabundle.h	(revision 779550)
+++ amarok/src/metabundle.h	(working copy)
@@ -293,8 +293,8 @@
     QString getRandomString( int size, bool numbersOnly = false );
 
 public: //modifiers
-    void setUrl( const KURL &url );
-    void setPath( const QString &path );
+    void setUrl( const KURL &url, bool ignoretemp = false );
+    void setPath( const QString &path, bool ignoretemp = false );
     void setTitle( const QString &title );
     void setArtist( const AtomicString &artist );
     void setAlbumArtist( const AtomicString &albumArtist );
@@ -323,7 +323,7 @@
     bool checkExists();
     void setPodcastBundle( const PodcastEpisodeBundle &peb );
     void setLastFmBundle( const LastFm::Bundle &last );
-    void setUniqueId(); //uses database for lookup
+    void setUniqueId( bool ignoretemp = false ); //uses database for lookup
     void setUniqueId( const QString &id ); //SEE COMMENT in .CPP
     const TagLib::ByteVector readUniqueIdHelper( TagLib::FileRef fileref ) const;
     QString readUniqueId( TagLib::FileRef *fileref = 0  );
Index: amarok/src/collectiondb.h
===================================================================
--- amarok/src/collectiondb.h	(revision 779550)
+++ amarok/src/collectiondb.h	(working copy)
@@ -335,7 +335,7 @@
         bool newUniqueIdForFile( const QString &path );
         bool removeUniqueIdFromFile( const QString &path );
         QString urlFromUniqueId( const QString &id );
-        QString uniqueIdFromUrl( const KURL &url );
+        QString uniqueIdFromUrl( const KURL &url, bool ignorescanning=false );
 
         //podcast methods
         /// Insert a podcast channel into the database.  If @param replace is true, replace the row
Index: amarok/src/metabundle.cpp
===================================================================
--- amarok/src/metabundle.cpp	(revision 779550)
+++ amarok/src/metabundle.cpp	(working copy)
@@ -1577,32 +1577,32 @@
     return true;
 }
 
-void MetaBundle::setUrl( const KURL &url )
+void MetaBundle::setUrl( const KURL &url, bool ignoretemp )
 {
     QValueList<int> changes;
     for( int i = 0; i < NUM_COLUMNS; ++i ) changes << i;
     aboutToChange( changes ); m_url = url; reactToChanges( changes );
 
-    setUniqueId();
+    setUniqueId(ignoretemp);
 }
 
-void MetaBundle::setPath( const QString &path )
+void MetaBundle::setPath( const QString &path, bool ignoretemp )
 {
     QValueList<int> changes;
     for( int i = 0; i < NUM_COLUMNS; ++i ) changes << i;
     aboutToChange( changes ); m_url.setPath( path ); reactToChanges( changes );
 
-    setUniqueId();
+    setUniqueId(ignoretemp);
 }
 
-void MetaBundle::setUniqueId()
+void MetaBundle::setUniqueId( bool ignoretemp )
 {
     //if the file isn't already in the database, not checking for amarokcollectionscanner
     //will result in the UID being set to QString::null during the scan...bad!
     if( !isFile() )
         return;
 
-    m_uniqueId = CollectionDB::instance()->uniqueIdFromUrl( url() );
+    m_uniqueId = CollectionDB::instance()->uniqueIdFromUrl( url(), ignoretemp );
 }
 
 void MetaBundle::setUniqueId( const QString &id )
Index: amarok/src/playlistloader.cpp
===================================================================
--- amarok/src/playlistloader.cpp	(revision 779550)
+++ amarok/src/playlistloader.cpp	(working copy)
@@ -558,6 +558,7 @@
 bool
 PlaylistFile::loadM3u( QTextStream &stream )
 {
+    debug() << "=================== loadM3u Called =================" << endl;
     const QString directory = m_path.left( m_path.findRev( '/' ) + 1 );
     MetaBundle b;
 
@@ -582,10 +583,10 @@
             if( KURL::isRelativeURL( url ) ) {
                 KURL kurl( KURL::fromPathOrURL( directory + line ) );
                 kurl.cleanPath();
-                b.setPath( kurl.path() );
+                b.setPath( kurl.path(), true );
             }
             else {
-                b.setUrl( KURL::fromPathOrURL( line ) );
+                b.setUrl( KURL::fromPathOrURL( line ), true );
             }
 
             // Ensure that we always have a title: use the URL as fallback
