anchor.diff:              ok = file:delete(erlcinfo_file())
       end,
       Dirs = source_and_include_dirs(InclDirs, Erls),
  -    Updates = [update_erlcinfo(G, Erl, Dirs) || Erl <- Erls],
  -    Modified = lists:member(modified, Updates),
  -    ok = store_erlcinfo(G, Modified, InclDirs),
  +    Modified = lists:foldl(update_erlcinfo_fun(G, Dirs), false, Erls),
  +    if Modified -> store_erlcinfo(G, InclDirs); not Modified -> ok end,
       G.
   
   source_and_include_dirs(InclDirs, Erls) ->
       SourceDirs = lists:map(fun filename:dirname/1, Erls),
       lists:usort(["include" | InclDirs ++ SourceDirs]).
   
  -update_erlcinfo(G, Source, Dirs) ->
  +update_erlcinfo_fun(G, Dirs) ->
  +    fun(Erl, Modified) ->
  +        case update_erlcinfo(G, Dirs, Erl) of
  +            modified -> true;
  +            unmodified -> Modified
  +        end
  +    end.
  +
  +update_erlcinfo(G, Dirs, Source) ->
       case digraph:vertex(G, Source) of
           {_, LastUpdated} ->
               case filelib:last_modified(Source) of
  
positive.code:                     digraph:del_vertex(G, Source),
                      modified;
                  LastModified when LastUpdated < LastModified ->
                      modify_erlcinfo(G, Source, Dirs),
                      modified;
                  _ ->
                      unmodified
              end;
          false ->
              modify_erlcinfo(G, Source, Dirs),
              modified
      end.
  
  modify_erlcinfo(G, Source, Dirs) ->
  
negative.code:             ok
      end.
  
  store_erlcinfo(G, InclDirs) ->
      Vs = lists:map(
             fun(V) ->
                     digraph:vertex(G, V)
  