anchor.diff:  get_user_lib_dirs_1([Dir|DirList]) ->
       case erl_prim_loader:list_dir(Dir) of
   	{ok, Dirs} ->
  -	    {Paths,_Libs} = make_path(Dir, Dirs),
  +	    Paths = make_path(Dir, Dirs),
   	    %% Only add paths trailing with ./ebin.
   	    [P || P <- Paths, filename:basename(P) =:= "ebin"] ++
   		get_user_lib_dirs_1(DirList);
  
positive.code: choose([],Acc, _ArchiveExt) ->
      Acc.
  
  make_path(_,[],Res,Bs) ->
      {Res,Bs};
  make_path(BundleDir,[Bundle|Tail],Res,Bs) ->
      Dir = filename:append(BundleDir,Bundle),
      Ebin = filename:append(Dir,"ebin"),
      %% First try with /ebin
      case erl_prim_loader:read_file_info(Ebin) of
  	{ok,#file_info{type=directory}} ->
  	    make_path(BundleDir,Tail,[Ebin|Res],[Bundle|Bs]);
  	_ ->
  	    %% Second try with archive
  	    Ext = archive_extension(),
  	    Base = filename:basename(Dir, Ext),
  	    Ebin2 = filename:join([filename:dirname(Dir), Base ++ Ext, Base, "ebin"]),
  	    Ebins = 
  		case split(Base, "-") of
  		    [_, _|_] = Toks ->
  			AppName = join(lists:sublist(Toks, length(Toks)-1),"-"),
  			Ebin3 = filename:join([filename:dirname(Dir), Base ++ Ext, AppName, "ebin"]),
  			[Ebin3, Ebin2, Dir];
  		    _ ->
  			[Ebin2, Dir]
  		end,
  	    try_ebin_dirs(Ebins,BundleDir,Tail,Res,Bundle, Bs)
      end.
  
  try_ebin_dirs([Ebin | Ebins],BundleDir,Tail,Res,Bundle,Bs) ->
      case erl_prim_loader:read_file_info(Ebin) of
  	{ok,#file_info{type=directory}} -> 
  	    make_path(BundleDir,Tail,[Ebin|Res],[Bundle|Bs]);
  	_ ->
  	    try_ebin_dirs(Ebins,BundleDir,Tail,Res,Bundle,Bs)
      end;
  try_ebin_dirs([],BundleDir,Tail,Res,_Bundle,Bs) ->
      make_path(BundleDir,Tail,Res,Bs).
  
  
  %%
  
negative.code: 	    interactive ->
  		LibDir = filename:append(Root, "lib"),
  		{ok,Dirs} = erl_prim_loader:list_dir(LibDir),
  		Paths = make_path(LibDir, Dirs),
  		UserLibPaths = get_user_lib_dirs(),
  		["."] ++ UserLibPaths ++ Paths;
  	    _ ->
  