anchor.diff:  		  {call,ber,match_tags,[BytesVar,TagStr]},com,nl,
   		  {call,real_common,decode_real,[{curr,tmpbuf}]},nl,
   		  "end",nl]);
  -	_ ->
  -	    emit([TagStr,")"])
  +	{'BIT STRING',NNL} ->
  +	    gen_dec_bit_string(BytesVar, Constraint, NNL, TagStr);
  +	'NULL' ->
  +	    call(decode_null, [BytesVar,TagStr]);
  +	'OBJECT IDENTIFIER' ->
  +	    call(decode_object_identifier, [BytesVar,TagStr]);
  +	'RELATIVE-OID' ->
  +	    call(decode_relative_oid, [BytesVar,TagStr]);
  +	'OCTET STRING' ->
  +	    F = case asn1ct:use_legacy_types() of
  +		    false -> decode_octet_string;
  +		    true -> decode_restricted_string
  +		end,
  +	    case Constraint of
  +		[] ->
  +		    call(F, [BytesVar,TagStr]);
  +		_ ->
  +		    call(F, [BytesVar,{asis,Constraint},TagStr])
  +	    end;
  +	restricted_string ->
  +	    case Constraint of
  +		[] ->
  +		    call(decode_restricted_string,
  +			 [BytesVar,TagStr]);
  +		_ ->
  +		    call(decode_restricted_string,
  +			 [BytesVar,{asis,Constraint},TagStr])
  +	    end;
  +	'UniversalString' ->
  +	    call(decode_universal_string,
  +		 [BytesVar,{asis,Constraint},TagStr]);
  +	'UTF8String' ->
  +	    call(decode_UTF8_string, [BytesVar,TagStr]);
  +	'BMPString' ->
  +	    call(decode_BMP_string, [BytesVar,{asis,Constraint},TagStr]);
  +	'ASN1_OPEN_TYPE' ->
  +	    call(decode_open_type_as_binary, [BytesVar,TagStr])
       end.
   
   %% Simplify an integer constraint so that we can efficiently test it.
  
positive.code: 
  call(F, Args) ->
      asn1ct_func:call(ber, F, Args).
  
  need(F, Arity) ->
      asn1ct_func:need({ber,F,Arity}).
  
negative.code: 		      'GeneralizedTime' -> restricted_string;
  		      _                 -> Typename
  		  end,
      TagStr = case DoTag of
  		 {string,Tag1} -> Tag1;
  		 _ when is_list(DoTag) -> {asis,DoTag}
  	     end,
      case NewTypeName of
  	'BOOLEAN'->
  	    call(decode_boolean, [BytesVar,TagStr]);
  	'INTEGER' ->
  	    case IntConstr of
  		[] ->
  		    call(decode_integer, [BytesVar,TagStr]);
  		{_,_} ->
  		    call(decode_integer, [BytesVar,{asis,IntConstr},TagStr])
  	    end;
  	{'INTEGER',NamedNumberList} ->
  	    case IntConstr of
  		[] ->
  		    call(decode_named_integer,
  			 [BytesVar,
  			  {asis,NamedNumberList},
  			  TagStr]);
  		{_,_} ->
  		    call(decode_named_integer,
  			 [BytesVar,
  			  {asis,IntConstr},
  			  {asis,NamedNumberList},
  			  TagStr])
  	    end;
  	{'ENUMERATED',NNL} ->
  	    call(decode_enumerated, [BytesVar,{asis,NNL},TagStr]);
  	'REAL' ->
  	    asn1ct_name:new(tmpbuf),
  	    emit(["begin",nl,
  