anchor.diff:  	    objectset_or_fixedtypevalueset_field ->
   		{_,Name,Type,OSpec} = F,
   		RefType =
  -		    case (catch check_type(S,#typedef{typespec=Type},Type)) of
  -			{asn1_class,_ClassDef} ->
  +		    try check_type(S,#typedef{typespec=Type},Type) of
  +			#type{} = CheckedType ->
  +			    CheckedType
  +		    catch {asn1_class,_ClassDef} ->
   			    case if_current_checked_type(S,Type) of
  -				true ->
  -				    Type#type.def;
  -				_ ->
  -				    check_class(S,Type)
  -			    end;
  -			CheckedType when is_record(CheckedType,type) ->
  -			    CheckedType;
  -			_ ->
  -			    error({class,"internal error, check_class_fields",S})
  +				true -> Type#type.def;
  +				_ ->    check_class(S,Type)
  +			    end
   		    end,
   		if
   		    is_record(RefType,'Externaltypereference') ->
  
positive.code: 	    tag=lists:map(fun(#tag{type={default,TTx}}=TempTag) ->
  				  TempTag#tag{type=TTx};
  			     (Other) -> Other
  			  end, NewTags)};
  check_type(_S,Type,Ts) ->
      exit({error,{asn1,internal_error,Type,Ts}}).
  
  
  %%
  
negative.code: 		TempNewDef#newt{tag=merge_tags(Tag,CheckedT#type.tag),
  				type=CheckedT#type.def};
  	    'ASN1_OPEN_TYPE' ->
  		TempNewDef
  	end,
      #newt{type=TDef,tag=NewTags,constraint=NewConstr,inlined=Inlined} = NewDef,
      Ts#type{def=TDef,
  