*out->log << " " << (*obsit)->obsid;
     *out->log << endl << flush;
 
-    Sim->toEquilibrate = true;
-
     for( int imeas=0; imeas<comargs.nmeas; imeas++ ) {
       bool nextAlready = false;
       for (vector<obs*>::iterator obsit = observables.begin(); obsit != observables.end(); ++obsit) {
-       if( hypercache::readO( (*obsit)->ocid ) != -1 ) {
+       bool readnewObs;
+       int nequileftNewObs;
+       
+       hypercache::readO( (*obsit)->ocid, readnewObs, nequileftNewObs );
+
+       if( ! readnewObs ) {
          if (!nextAlready) {
            Sim->nextConfig();
            nextAlready = true;
          }
          (*obsit)->meas(false);
-         hypercache::writeO( (*obsit)->ocid );
+         hypercache::writeO( (*obsit)->ocid, comargs.nmeas );
        }
        else
          (*obsit)->meas(true);