     return ret;
  }
  
-@@ -324,7 +426,7 @@
+@@ -324,7 +427,7 @@
        fname = ff_pkt->fname;
     } 
  

    Dmsg2(dbglvl, "accurate %s = %i\n", fname, stat);
 
 bail_out:
@@ -379,7 +481,7 @@
    while (dir->recv() >= 0) {
       len = strlen(dir->msg) + 1;
       if (len < dir->msglen) {

+      return false;
+   }
+
+   dbenv->set_cachesize(dbenv, 0, 256 * 1024 * 1024, 0);
+   dbenv->set_errfile(dbenv, stderr);
+   dbenv->set_errpfx(dbenv, "hash");
+   
+   int flags = DB_PRIVATE | DB_INIT_MPOOL | DB_CREATE | DB_THREAD;
+   if ((ret = dbenv->open(dbenv, working_directory, flags, 0)) != 0) {
+      destroy();
+      Jmsg(jcr, M_ERROR, 1, _("Can't open initialize hash disk ERR=%i\n"), ret);
+      return false;
+   }
+
+   dbenv->set_flags(dbenv, DB_TXN_NOSYNC, 1);
+   
+   if ((ret = db_create(&db, dbenv, 0)) != 0) {
+      destroy();
+      Jmsg(jcr, M_ERROR, 1, _("Can't open accurate hash disk ERR=%i\n"), ret);
+      return false;
+   }
