diff --git a/gtk/gsynaptic.cc b/gtk/gsynaptic.cc
index 8b0c438f6dd2435ab8b473ce4dd924e6027de7c4..e733316e1d5b2bf4eb39e354aef035ac7de80449 100644
--- a/gtk/gsynaptic.cc
+++ b/gtk/gsynaptic.cc
@@ -520,17 +520,15 @@ int main(int argc, char **argv)
    }
 
    //no need to open a cache that will invalid after the update
-   if(!UpdateMode) {
-      mainWindow->setTreeLocked(true);
-      if(!packageLister->openCache()) {
-	 mainWindow->showErrors();
-	 exit(1);
-      }
-      mainWindow->restoreState();
-      mainWindow->showErrors();
-      mainWindow->setTreeLocked(false);
+   mainWindow->setTreeLocked(true);
+   if(!packageLister->openCache()) {
+    mainWindow->showErrors();
+    exit(1);
    }
-   
+   mainWindow->restoreState();
+   mainWindow->showErrors();
+   mainWindow->setTreeLocked(false);
+
    if (_config->FindB("Volatile::startInRepositories", false)) {
       mainWindow->cbShowSourcesWindow(NULL, mainWindow);
    }