anchor.diff:  enqueue(Message, S) ->
       loop(S#state{queue = [Message | S#state.queue]}).
   
  -sync_loop(From, S) ->
  -    log_loop(S, [], [], From, 0).
  +%% Collect further log and sync requests already in the mailbox or queued
   
   -define(MAX_LOOK_AHEAD, 64*1024).
   
  +log_loop(S, Pids, Bins, Sync) ->
  +    log_loop(S, Pids, Bins, Sync, iolist_size(Bins), (get(log))#log.format).
  +
   %% Inlined.
  -log_loop(#state{cache_error = CE}=S, Pids, _Bins, _Sync, _Sz) when CE =/= ok ->
  +log_loop(#state{cache_error = CE}=S, Pids, _Bins, _Sync, _Sz, _F) when CE =/= ok ->
       loop(cache_error(S, Pids));
  -log_loop(#state{}=S, Pids, Bins, Sync, Sz) when Sz > ?MAX_LOOK_AHEAD ->
  +log_loop(#state{}=S, Pids, Bins, Sync, Sz, _F) when Sz > ?MAX_LOOK_AHEAD ->
       loop(log_end(S, Pids, Bins, Sync));
  -log_loop(#state{messages = []}=S, Pids, Bins, Sync, Sz) ->
  -    receive 
  +log_loop(#state{messages = []}=S, Pids, Bins, Sync, Sz, F) ->
  +    receive
   	Message ->
  -            log_loop(Message, Pids, Bins, Sync, Sz, S, get(log))
  +            log_loop(Message, Pids, Bins, Sync, Sz, F, S)
       after 0 ->
   	    loop(log_end(S, Pids, Bins, Sync))
       end;
  -log_loop(#state{messages = [M | Ms]}=S, Pids, Bins, Sync, Sz) ->
  +log_loop(#state{messages = [M | Ms]}=S, Pids, Bins, Sync, Sz, F) ->
       S1 = S#state{messages = Ms},
  -    log_loop(M, Pids, Bins, Sync, Sz, S1, get(log)).
  +    log_loop(M, Pids, Bins, Sync, Sz, F, S1).
   
   %% Items logged after the last sync request found are sync:ed as well.
  -log_loop({alog,B}, Pids, Bins, Sync, Sz, S, #log{format = internal}) ->
  +log_loop({alog,B}, Pids, Bins, Sync, Sz, internal=F, S) ->
       %% {alog, _} allowed for the internal format only.
  -    log_loop(S, Pids, [B | Bins], Sync, Sz+iolist_size(B));
  -log_loop({balog, B}, Pids, Bins, Sync, Sz, S, _L) ->
  -    log_loop(S, Pids, [B | Bins], Sync, Sz+iolist_size(B));
  -log_loop({From, {log, B}}, Pids, Bins, Sync, Sz, S, #log{format = internal}) ->
  +    log_loop(S, Pids, [B | Bins], Sync, Sz+iolist_size(B), F);
  +log_loop({balog, B}, Pids, Bins, Sync, Sz, F, S) ->
  +    log_loop(S, Pids, [B | Bins], Sync, Sz+iolist_size(B), F);
  +log_loop({From, {log, B}}, Pids, Bins, Sync, Sz, internal=F, S) ->
       %% {log, _} allowed for the internal format only.
  -    log_loop(S, [From | Pids], [B | Bins], Sync, Sz+iolist_size(B));
  -log_loop({From, {blog, B}}, Pids, Bins, Sync, Sz, S, _L) ->
  -    log_loop(S, [From | Pids], [B | Bins], Sync, Sz+iolist_size(B));
  -log_loop({From, sync}, Pids, Bins, Sync, Sz, S, _L) ->
  -    log_loop(S, Pids, Bins, [From | Sync], Sz);
  -log_loop(Message, Pids, Bins, Sync, _Sz, S, _L) ->
  +    log_loop(S, [From | Pids], [B | Bins], Sync, Sz+iolist_size(B), F);
  +log_loop({From, {blog, B}}, Pids, Bins, Sync, Sz, F, S) ->
  +    log_loop(S, [From | Pids], [B | Bins], Sync, Sz+iolist_size(B), F);
  +log_loop({From, sync}, Pids, Bins, Sync, Sz, F, S) ->
  +    log_loop(S, Pids, Bins, [From | Sync], Sz, F);
  +log_loop(Message, Pids, Bins, Sync, _Sz, _F, S) ->
       NS = log_end(S, Pids, Bins, Sync),
       handle(Message, NS).
   
  
positive.code: 	    notify_owners({read_only,B}),
  	    loop(S);
  	L when L#log.status =:= ok, L#log.format =:= internal ->
  	    log_loop(S, [], [B], [], iolist_size(B));
  	L when L#log.status =:= ok ->
  	    notify_owners({format_external, B}),
  	    loop(S);
  
negative.code: 	L when L#log.mode =:= read_only ->
  	    reply(From, {error, {read_only_mode, L#log.name}}, S);
  	L when L#log.status =:= ok, L#log.format =:= internal ->
  	    log_loop(S, From, [B], []);
  	L when L#log.status =:= ok, L#log.format =:= external ->
  	    reply(From, {error, {format_external, L#log.name}}, S);
  	L when L#log.status =:= {blocked, false} ->
  