diff -Naur kdelibs-3.5.8.orig/kio/kio/kdirlister.cpp kdelibs-3.5.8/kio/kio/kdirlister.cpp --- kdelibs-3.5.8.orig/kio/kio/kdirlister.cpp 2007-10-08 16:01:42.000000000 +0200 +++ kdelibs-3.5.8/kio/kio/kdirlister.cpp 2007-11-20 11:55:05.000000000 +0100 @@ -447,8 +447,11 @@ url.adjustPath( -1 ); QString urlStr = url.url(); QPtrList *holders = urlsCurrentlyHeld[urlStr]; - Q_ASSERT( holders ); - holders->removeRef( lister ); + //Q_ASSERT( holders ); + if ( holders ) + { + holders->removeRef( lister ); + } // remove the dir from lister->d->lstDirs so that it doesn't contain things // that itemsInUse doesn't. When emitting the canceled signals lstDirs must @@ -457,9 +460,8 @@ lister->d->lstDirs.remove( lister->d->lstDirs.find( url ) ); DirItem *item = itemsInUse[urlStr]; - Q_ASSERT( item ); - if ( holders->isEmpty() ) + if ( holders && holders->isEmpty() ) { urlsCurrentlyHeld.remove( urlStr ); // this deletes the (empty) holders list if ( !urlsCurrentlyListed[urlStr] ) @@ -486,7 +488,7 @@ if ( notify ) emit lister->clear( url ); - if ( item->complete ) + if ( item && item->complete ) { kdDebug(7004) << k_funcinfo << lister << " item moved into cache: " << url << endl; itemsCached.insert( urlStr, item ); // TODO: may return false!!