--- a/src/common/rclinit.cpp
+++ b/src/common/rclinit.cpp
@@ -125,7 +125,6 @@
 	}
     }
 
-
     // Make sure the locale charset is initialized (so that multiple
     // threads don't try to do it at once).
     config->getDefCharset();
@@ -146,6 +145,9 @@
 #ifndef IDX_THREADS
     ExecCmd::useVfork(true);
 #else
+    // Keep threads init behind log init, but make sure it's done before
+    // we do the vfork choice !
+    config->initThrConf();
     bool intern_noThr = config->getThrConf(RclConfig::ThrIntern).first == -1;
     bool split_noThr =  config->getThrConf(RclConfig::ThrSplit).first == -1;
     bool write_noThr = config->getThrConf(RclConfig::ThrDbWrite).first == -1;