diff -urN --exclude=.svn krusader-2.1.0-beta1/ChangeLog krusader/ChangeLog
--- ./ChangeLog	2009-11-01 08:11:41.000000000 +1000
+++ ./ChangeLog	2009-11-16 19:10:44.000000000 +1000
@@ -11,6 +11,8 @@
   CHANGED: the packer/unpacker/archive tester are job based now
   CHANGED: the old views were replaced by the interviews
 
+    FIXED: deadlock when trying to display error message after failed mount
+    FIXED: [ 2858133 ] wrong background color in listviews
     FIXED: [ 2857663 ] deadlock when trying to display error message after failed unmount
     FIXED: problem with autorefresh in the new interviews
     FIXED: [ 2609505 ] problem with directory refresh
diff -urN --exclude=.svn krusader-2.1.0-beta1/krusader/GUI/mediabutton.cpp krusader/krusader/GUI/mediabutton.cpp
--- ./krusader/GUI/mediabutton.cpp	2009-11-01 08:11:25.000000000 +1000
+++ ./krusader/GUI/mediabutton.cpp	2009-11-16 19:02:30.000000000 +1000
@@ -416,10 +416,12 @@
             name = udiNameMap[ udi ];
 
         if (errorData.isValid()) {
-            KMessageBox::sorry(this, i18n("An error occurred while accessing '%1', the system responded: %2",
+            KMessageBox::queuedMessageBox(this, KMessageBox::Sorry,
+                                          i18n("An error occurred while accessing '%1', the system responded: %2",
                                           name, errorData.toString()));
         } else {
-            KMessageBox::sorry(this, i18n("An error occurred while accessing '%1'",
+            KMessageBox::queuedMessageBox(this, KMessageBox::Sorry,
+                                          i18n("An error occurred while accessing '%1'",
                                           name));
         }
     }
diff -urN --exclude=.svn krusader-2.1.0-beta1/krusader/Panel/krinterbriefview.cpp krusader/krusader/Panel/krinterbriefview.cpp
--- ./krusader/Panel/krinterbriefview.cpp	2009-11-01 08:11:35.000000000 +1000
+++ ./krusader/Panel/krinterbriefview.cpp	2009-11-16 19:08:14.000000000 +1000
@@ -264,8 +264,12 @@
 
 void KrInterBriefView::refreshColors()
 {
-    if (_model->rowCount() != 0)
-        _model->emitChanged();
+    QPalette p(palette());
+    KrColorGroup cg;
+    KrColorCache::getColorCache().getColors(cg, KrColorItemType(KrColorItemType::File,
+        false, _focused, false, false));
+    p.setColor(QPalette::Base, cg.background());
+    setPalette(p);
 }
 
 void KrInterBriefView::restoreSettings()
diff -urN --exclude=.svn krusader-2.1.0-beta1/krusader/Panel/krinterdetailedview.cpp krusader/krusader/Panel/krinterdetailedview.cpp
--- ./krusader/Panel/krinterdetailedview.cpp	2009-11-01 08:11:35.000000000 +1000
+++ ./krusader/Panel/krinterdetailedview.cpp	2009-11-16 19:08:14.000000000 +1000
@@ -265,8 +265,12 @@
 
 void KrInterDetailedView::refreshColors()
 {
-    if (_model->rowCount() != 0)
-        _model->emitChanged();
+    QPalette p(palette());
+    KrColorGroup cg;
+    KrColorCache::getColorCache().getColors(cg, KrColorItemType(KrColorItemType::File,
+        false, _focused, false, false));
+    p.setColor(QPalette::Base, cg.background());
+    setPalette(p);
 }
 
 void KrInterDetailedView::restoreSettings()
diff -urN --exclude=.svn krusader-2.1.0-beta1/krusader/Queue/queue_mgr.cpp krusader/krusader/Queue/queue_mgr.cpp
--- ./krusader/Queue/queue_mgr.cpp	2009-11-01 08:11:21.000000000 +1000
+++ ./krusader/Queue/queue_mgr.cpp	2009-11-16 19:02:45.000000000 +1000
@@ -20,6 +20,7 @@
 #include "queuedialog.h"
 #include "queue.h"
 #include <QList>
+#include <QVector>
 #include <QVariant>
 #include <klocale.h>
 #include "../krusader.h"
@@ -44,11 +45,10 @@
     if (queuesSize == 0)
         queues << defaultName;
 
-    Queue *queueArray [ queuesSize ];
+    QVector<Queue*> queueArray;
 
-    int counter = 0;
     foreach(const QString &queueName, queues)
-    queueArray[ counter++ ] = createQueue(queueName);
+        queueArray.append(createQueue(queueName));
 
     if (current < queuesSize)
         setCurrentQueue(queueArray[ current ]);
diff -urN --exclude=.svn krusader-2.1.0-beta1/krusader/VFS/normal_vfs.h krusader/krusader/VFS/normal_vfs.h
--- ./krusader/VFS/normal_vfs.h	2009-11-01 08:11:12.000000000 +1000
+++ ./krusader/VFS/normal_vfs.h	2009-11-16 18:59:10.000000000 +1000
@@ -70,7 +70,14 @@
 
     /// return the VFS working dir
     virtual QString vfs_workingDir() {
+#ifdef Q_OS_WIN
+        
+        QString path = vfs_origin.toLocalFile();
+        if(path.endsWith('/')) path.chop(1);
+        return path;
+#else
         return vfs_origin.path(KUrl::RemoveTrailingSlash);
+#endif
     }
 
     /// Get ACL permissions
