anchor.diff:  	    Base = filename:basename(Bundle, Ext),
   	    Ebin2 = filename:join([BundleDir, Base ++ Ext, Base, "ebin"]),
   	    Ebins = 
  -		case split(Base, "-") of
  -		    [_, _|_] = Toks ->
  -			AppName = join(lists:sublist(Toks, length(Toks)-1),"-"),
  +		case split_base(Base) of
  +		    {AppName,_} ->
   			Ebin3 = filename:join([BundleDir, Base ++ Ext,
   					       AppName, "ebin"]),
   			[Ebin3, Ebin2, Dir];
  
positive.code: 
  create_bundle(FullName, ArchiveExt) ->
      BaseName = filename:basename(FullName, ArchiveExt),
      case split(BaseName, "-") of
  	[_, _|_] = Toks ->
  	    VsnStr = lists:last(Toks),
  	    case vsn_to_num(VsnStr) of
  		{ok, VsnNum} ->
  		    Name = join(lists:sublist(Toks, length(Toks)-1),"-"),
  		    {Name,VsnNum,FullName};
  		false ->
  		    {FullName,[0],FullName}
  
negative.code:     [H|discard_after_hyphen(T)];
  discard_after_hyphen([]) ->
      [].
  
  split_base(BaseName) ->
      case split(BaseName, "-") of
  	[_, _|_] = Toks ->
  	    Vsn = lists:last(Toks),
  	    AllButLast = lists:droplast(Toks),
  	    {join(AllButLast, "-"),Vsn};
  	[_|_] ->
  	    BaseName
      end.
  
  check_path(Path) ->
      PathChoice = init:code_path_choice(),
  