diff --git a/kio/kio/chmodjob.cpp b/kio/kio/chmodjob.cpp
index 1c64da3..408df3f 100644
--- a/kio/kio/chmodjob.cpp
+++ b/kio/kio/chmodjob.cpp
@@ -273,7 +273,7 @@ ChmodJob *KIO::chmod( const KFileItemList& lstItems, int permissions, int mask,
     {
         struct passwd* pw = getpwnam(QFile::encodeName(owner));
         if ( pw == 0L )
-            kError(250) << " ERROR: No user" << owner;
+            qWarning() << " ERROR: No user" << owner;
         else
             newOwnerID = pw->pw_uid;
     }
@@ -282,7 +282,7 @@ ChmodJob *KIO::chmod( const KFileItemList& lstItems, int permissions, int mask,
     {
         struct group* g = getgrnam(QFile::encodeName(group));
         if ( g == 0L )
-            kError(250) << " ERROR: No group" << group;
+            qWarning() << " ERROR: No group" << group;
         else
             newGroupID = g->gr_gid;
     }
diff --git a/kio/kio/copyjob.cpp b/kio/kio/copyjob.cpp
index 1cb75dd..741f8fd 100644
--- a/kio/kio/copyjob.cpp
+++ b/kio/kio/copyjob.cpp
@@ -1871,7 +1871,7 @@ void CopyJobPrivate::slotResultRenaming( KJob* job )
                         //qDebug() << "Didn't manage to rename" << _tmp << "to" << _dest << ", reverting";
                         // Revert back to original name!
                         if (KDE::rename( _tmp, _src ) != 0) {
-                            kError(7007) << "Couldn't rename" << _tmp << "back to" << _src << '!';
+                            qWarning() << "Couldn't rename" << _tmp << "back to" << _src << '!';
                             // Severe error, abort
                             q->Job::slotResult(job); // will set the error and emit result(this)
                             return;
diff --git a/kio/kio/kdirlister.cpp b/kio/kio/kdirlister.cpp
index 7fd5f4b..bf923e6 100644
--- a/kio/kio/kdirlister.cpp
+++ b/kio/kio/kdirlister.cpp
@@ -1173,20 +1173,20 @@ void KDirListerCache::slotEntries( KIO::Job *job, const KIO::UDSEntryList &entri
 
     DirItem *dir = itemsInUse.value(urlStr);
     if (!dir) {
-        kError(7004) << "Internal error: job is listing" << url << "but itemsInUse only knows about" << itemsInUse.keys();
+        qWarning() << "Internal error: job is listing" << url << "but itemsInUse only knows about" << itemsInUse.keys();
         Q_ASSERT( dir );
         return;
     }
 
     DirectoryDataHash::iterator dit = directoryData.find(urlStr);
     if (dit == directoryData.end()) {
-        kError(7004) << "Internal error: job is listing" << url << "but directoryData doesn't know about that url, only about:" << directoryData.keys();
+        qWarning() << "Internal error: job is listing" << url << "but directoryData doesn't know about that url, only about:" << directoryData.keys();
         Q_ASSERT(dit != directoryData.end());
         return;
     }
     KDirListerCacheDirectoryData& dirData = *dit;
     if (dirData.listersCurrentlyListing.isEmpty()) {
-        kError(7004) << "Internal error: job is listing" << url << "but directoryData says no listers are currently listing " << urlStr;
+        qWarning() << "Internal error: job is listing" << url << "but directoryData says no listers are currently listing " << urlStr;
 #ifndef NDEBUG
         printDebug();
 #endif
@@ -1261,7 +1261,7 @@ void KDirListerCache::slotResult( KJob *j )
 
   DirectoryDataHash::iterator dit = directoryData.find(jobUrlStr);
   if (dit == directoryData.end()) {
-    kError() << "Nothing found in directoryData for URL" << jobUrlStr;
+    qWarning() << "Nothing found in directoryData for URL" << jobUrlStr;
 #ifndef NDEBUG
     printDebug();
 #endif
@@ -1270,7 +1270,7 @@ void KDirListerCache::slotResult( KJob *j )
   }
   KDirListerCacheDirectoryData& dirData = *dit;
   if ( dirData.listersCurrentlyListing.isEmpty() ) {
-    kError() << "OOOOPS, nothing in directoryData.listersCurrentlyListing for" << jobUrlStr;
+    qWarning() << "OOOOPS, nothing in directoryData.listersCurrentlyListing for" << jobUrlStr;
     // We're about to assert; dump the current state...
 #ifndef NDEBUG
     printDebug();
@@ -1712,7 +1712,7 @@ void KDirListerCache::slotUpdateResult( KJob * j )
 
     DirItem *dir = itemsInUse.value(jobUrlStr, 0);
     if (!dir) {
-        kError(7004) << "Internal error: itemsInUse did not contain" << jobUrlStr;
+        qWarning() << "Internal error: itemsInUse did not contain" << jobUrlStr;
 #ifndef NDEBUG
         printDebug();
 #endif
@@ -2042,7 +2042,8 @@ void KDirListerCache::printDebug()
 
     // Abort on listers without jobs -after- showing the full dump. Easier debugging.
     Q_FOREACH(KDirLister* listit, listersWithoutJob) {
-        kFatal() << "HUH? Lister" << listit << "is supposed to be listing, but has no job!";
+        qWarning() << "Fatal Error: HUH? Lister" << listit << "is supposed to be listing, but has no job!";
+        abort();
     }
 }
 #endif
diff --git a/kio/kio/kdirmodel.cpp b/kio/kio/kdirmodel.cpp
index b7921a9..8c58a99 100644
--- a/kio/kio/kdirmodel.cpp
+++ b/kio/kio/kdirmodel.cpp
@@ -243,7 +243,7 @@ KDirModelNode* KDirModelPrivate::expandAllParentsUntil(const QUrl& _url) const /
         QUrlPathInfo pathInfo(nodeUrl);
         const QString nodePath = pathInfo.path(QUrlPathInfo::AppendTrailingSlash);
         if(!pathStr.startsWith(nodePath)) {
-            kError(7008) << "The kioslave for" << url.scheme() << "violates the hierarchy structure:"
+            qWarning() << "The kioslave for" << url.scheme() << "violates the hierarchy structure:"
                          << "I arrived at node" << nodePath << ", but" << pathStr << "does not start with that path.";
             return 0;
         }
@@ -377,7 +377,7 @@ void KDirModelPrivate::_k_slotNewItems(const QUrl& directoryUrl, const KFileItem
     // If the directory containing the items wasn't found, then we have a big problem.
     // Are you calling KDirLister::openUrl(url,true,false)? Please use expandToUrl() instead.
     if (!result) {
-        kError(7008) << "Items emitted in directory" << directoryUrl
+        qWarning() << "Items emitted in directory" << directoryUrl
                      << "but that directory isn't in KDirModel!"
                      << "Root directory:" << urlForNode(m_rootNode);
         Q_FOREACH(const KFileItem& item, items) {
@@ -419,9 +419,11 @@ void KDirModelPrivate::_k_slotNewItems(const QUrl& directoryUrl, const KFileItem
         // Test code for possible duplication of items in the childnodes list,
         // not sure if/how it ever happened.
         //if (dirNode->m_childNodes.count() &&
-        //    dirNode->m_childNodes.last()->item().name() == (*it).name())
-        //    kFatal() << "Already having" << (*it).name() << "in" << directoryUrl
+        //    dirNode->m_childNodes.last()->item().name() == (*it).name()) {
+        //    qWarning() << "Already having" << (*it).name() << "in" << directoryUrl
         //             << "url=" << dirNode->m_childNodes.last()->item().url();
+        //    abort();
+        //}
 #endif
         dirNode->m_childNodes.append(node);
         const QUrl url = it->url();
diff --git a/kio/kio/kfileshare.cpp b/kio/kio/kfileshare.cpp
index b896768..fb9e953 100644
--- a/kio/kio/kfileshare.cpp
+++ b/kio/kio/kfileshare.cpp
@@ -52,7 +52,7 @@ static QString findExe( const char* exeName )
    if (exe.isEmpty())
        exe = QStandardPaths::findExecutable(exeName, QStringList() << "/usr/sbin");
    if (exe.isEmpty())
-       kError() << exeName << "not found in PATH nor in /usr/sbin";
+       qWarning() << exeName << "not found in PATH nor in /usr/sbin";
    return exe;
 }
 
@@ -192,7 +192,7 @@ void KFileShare::readShareList()
     QProcess proc;
     proc.start( exe, QStringList() );
     if ( !proc.waitForFinished() ) {
-        kError() << "Can't run" << exe;
+        qWarning() << "Can't run" << exe;
         s_authorization = ErrorNotFound;
         return;
     }
diff --git a/kio/kio/knfsshare.cpp b/kio/kio/knfsshare.cpp
index ca13a64..42c0dc0 100644
--- a/kio/kio/knfsshare.cpp
+++ b/kio/kio/knfsshare.cpp
@@ -87,7 +87,7 @@ bool KNFSShare::KNFSSharePrivate::readExportsFile()
   //qDebug() << exportsFile;
 
   if (!f.open(QIODevice::ReadOnly)) {
-    kError() << "KNFSShare: Could not open" << exportsFile;
+    qWarning() << "KNFSShare: Could not open" << exportsFile;
     return false;
   }
 
@@ -130,7 +130,7 @@ bool KNFSShare::KNFSSharePrivate::readExportsFile()
     if ( completeLine[0] == QLatin1Char('\"') ) {
       int i = completeLine.indexOf(QLatin1Char('"'), 1);
       if (i == -1) {
-        kError() << "KNFSShare: Parse error: Missing quotation mark:" << completeLine;
+        qWarning() << "KNFSShare: Parse error: Missing quotation mark:" << completeLine;
         continue;
       }
       path = completeLine.mid(1,i-1);
diff --git a/kio/kio/krun.cpp b/kio/kio/krun.cpp
index eb32484..c20d3ec 100644
--- a/kio/kio/krun.cpp
+++ b/kio/kio/krun.cpp
@@ -859,13 +859,13 @@ static bool makeFileExecutable(const QString &fileName)
     // over.
     QFile desktopFile(fileName);
     if (!desktopFile.open(QFile::ReadOnly)) {
-        kError(7010) << "Error opening service" << fileName << desktopFile.errorString();
+        qWarning() << "Error opening service" << fileName << desktopFile.errorString();
         return false;
     }
 
     QByteArray header = desktopFile.peek(2);   // First two chars of file
     if (header.size() == 0) {
-        kError(7010) << "Error inspecting service" << fileName << desktopFile.errorString();
+        qWarning() << "Error inspecting service" << fileName << desktopFile.errorString();
         return false; // Some kind of error
     }
 
@@ -874,13 +874,13 @@ static bool makeFileExecutable(const QString &fileName)
         QSaveFile saveFile;
         saveFile.setFileName(fileName);
         if (!saveFile.open(QIODevice::WriteOnly)) {
-            kError(7010) << "Unable to open replacement file for" << fileName << saveFile.errorString();
+            qWarning() << "Unable to open replacement file for" << fileName << saveFile.errorString();
             return false;
         }
 
         QByteArray shebang("#!/usr/bin/env xdg-open\n");
         if (saveFile.write(shebang) != shebang.size()) {
-            kError(7010) << "Error occurred adding header for" << fileName << saveFile.errorString();
+            qWarning() << "Error occurred adding header for" << fileName << saveFile.errorString();
             saveFile.cancelWriting();
             return false;
         }
@@ -888,25 +888,25 @@ static bool makeFileExecutable(const QString &fileName)
         // Now copy the one into the other and then close and reopen desktopFile
         QByteArray desktopData(desktopFile.readAll());
         if (desktopData.isEmpty()) {
-            kError(7010) << "Unable to read service" << fileName << desktopFile.errorString();
+            qWarning() << "Unable to read service" << fileName << desktopFile.errorString();
             saveFile.cancelWriting();
             return false;
         }
 
         if (saveFile.write(desktopData) != desktopData.size()) {
-            kError(7010) << "Error copying service" << fileName << saveFile.errorString();
+            qWarning() << "Error copying service" << fileName << saveFile.errorString();
             saveFile.cancelWriting();
             return false;
         }
 
         desktopFile.close();
         if (!saveFile.commit()) { // Figures....
-            kError(7010) << "Error committing changes to service" << fileName << saveFile.errorString();
+            qWarning() << "Error committing changes to service" << fileName << saveFile.errorString();
             return false;
         }
 
         if (!desktopFile.open(QFile::ReadOnly)) {
-            kError(7010) << "Error re-opening service" << fileName << desktopFile.errorString();
+            qWarning() << "Error re-opening service" << fileName << desktopFile.errorString();
             return false;
         }
     } // Add header
@@ -914,7 +914,7 @@ static bool makeFileExecutable(const QString &fileName)
     // corresponds to owner on unix, which will have to do since if the user
     // isn't the owner we can't change perms anyways.
     if (!desktopFile.setPermissions(QFile::ExeUser | desktopFile.permissions())) {
-        kError(7010) << "Unable to change permissions for" << fileName << desktopFile.errorString();
+        qWarning() << "Unable to change permissions for" << fileName << desktopFile.errorString();
         return false;
     }
 
@@ -1343,7 +1343,7 @@ void KRun::scanFile()
     // getting some data out of the file, to know what mimetype it is.
 
     if (!KProtocolManager::supportsReading(d->m_strURL)) {
-        kError(7010) << "#### NO SUPPORT FOR READING!";
+        qWarning() << "#### NO SUPPORT FOR READING!";
         d->m_bFault = true;
         d->m_bFinished = true;
         d->startTimer();
@@ -1407,7 +1407,7 @@ void KRun::slotStatResult(KJob * job)
         // actions needs to be taken.
         if (errCode != KIO::ERR_NO_CONTENT) {
             d->m_showingDialog = true;
-            kError(7010) << this << "ERROR" << job->error() << job->errorString();
+            qWarning() << this << "ERROR" << job->error() << job->errorString();
             job->uiDelegate()->showErrorMessage();
             //qDebug() << this << " KRun returning from showErrorDialog, starting timer to delete us";
             d->m_showingDialog = false;
@@ -1424,7 +1424,7 @@ void KRun::slotStatResult(KJob * job)
 
         KIO::StatJob* statJob = qobject_cast<KIO::StatJob*>(job);
         if (!statJob) {
-            kFatal() << "job is a " << typeid(*job).name() << " should be a StatJob";
+            qFatal("Fatal Error: job is a %s, should be a StatJob", typeid(*job).name());
         }
 
         // Update our URL in case of a redirection
@@ -1477,7 +1477,7 @@ void KRun::slotScanFinished(KJob *job)
         // actions needs to be taken.
         if (errCode != KIO::ERR_NO_CONTENT) {
             d->m_showingDialog = true;
-            kError(7010) << this << "ERROR (stat):" << job->error() << ' ' << job->errorString();
+            qWarning() << this << "ERROR (stat):" << job->error() << ' ' << job->errorString();
             job->uiDelegate()->showErrorMessage();
             //qDebug() << this << " KRun returning from showErrorDialog, starting timer to delete us";
             d->m_showingDialog = false;
diff --git a/kio/kio/scheduler.cpp b/kio/kio/scheduler.cpp
index 75ac02d..135f747 100644
--- a/kio/kio/scheduler.cpp
+++ b/kio/kio/scheduler.cpp
@@ -541,7 +541,7 @@ Slave *ProtoQueue::createSlave(const QString &protocol, SimpleJob *job, const QU
         scheduler()->connect(slave, SIGNAL(slaveStatus(pid_t,QByteArray,QString,bool)),
                              SLOT(slotSlaveStatus(pid_t,QByteArray,QString,bool)));
     } else {
-        kError() << "couldn't create slave:" << errortext;
+        qWarning() << "couldn't create slave:" << errortext;
         if (job) {
             job->slotError(error, errortext);
         }
diff --git a/kio/kio/slavebase.cpp b/kio/kio/slavebase.cpp
index 8dec59e..4731531 100644
--- a/kio/kio/slavebase.cpp
+++ b/kio/kio/slavebase.cpp
@@ -961,7 +961,7 @@ int SlaveBase::waitForAnswer( int expected1, int expected2, QByteArray & data, i
         }
         else
         {
-            kFatal(7019) << "Got cmd " << cmd << " while waiting for an answer!";
+            qFatal("Fatal Error: Got cmd %s, while waiting for an answer!", cmd);
         }
     }
 }
