anchor.diff:      ArchiveDir = filename:append(Archive, Dir),
       case erl_prim_loader:list_dir(ArchiveDir) of
   	{ok, Files} ->
  -	    IsDir =
  -		fun(RelFile) ->
  -			File = filename:append(ArchiveDir, RelFile),
  -			case erl_prim_loader:read_file_info(File) of
  -			    {ok, #file_info{type = directory}} ->
  -				true;
  -			    _ ->
  -				false
  -			end
  -		end,
  +	    IsDir = fun(RelFile) ->
  +			    File = filename:append(ArchiveDir, RelFile),
  +			    is_dir(File)
  +		    end,
   	    {Dir, lists:filter(IsDir, Files)};
   	_ ->
   	    try_archive_subdirs(Archive, Base, Dirs)
  
positive.code:     end.
  
  try_ebin_dirs([Ebin|Ebins]) ->
      case erl_prim_loader:read_file_info(Ebin) of
  	{ok,#file_info{type=directory}} -> 
  	    {ok,Ebin};
  	_ ->
  	    try_ebin_dirs(Ebins)
      end;
  try_ebin_dirs([]) ->
      error.
  
negative.code:     Dir = filename:append(BundleDir, Bundle),
      Ebin = filename:append(Dir, "ebin"),
      %% First try with /ebin
      case is_dir(Ebin) of
  	true ->
  	    make_path(BundleDir, Tail, [Ebin|Res]);
  	false ->
  	    %% Second try with archive
  	    Ext = archive_extension(),
  	    Base = filename:basename(Bundle, Ext),
  