in
   status := st;
   history := st :: !history;
+  prerr_endline ("after advance0 history.length = " ^ string_of_int (List.length !history));
   parsed_len, new_unparsed
 
 
         history, status
     | [_] -> (prerr_endline "singleton";failwith "retract")
     | _ -> (prerr_endline "nil"; assert false) in
-  NCicLibrary.time_travel !status;
+  NCicLibrary.time_travel new_status;
   history := new_history;
   status := new_status;
+  prerr_endline ("after retract history.length = " ^ string_of_int (List.length !history));
   let body = output_status !status in
   cgi#out_channel#output_string body;
   cgi#out_channel#commit_work()