anchor.diff:      io_reply(From, ReplyAs, Reply).
   
   %% New in R13B
  -% Wide characters (Unicode)
  -io_request({put_chars,Encoding,Chars}, Port) -> % Binary new in R9C
  -    put_chars(wrap_characters_to_binary(Chars, Encoding, get(encoding)), Port);
  -io_request({put_chars,Encoding,Mod,Func,Args}, Port) ->
  -    Result = case catch apply(Mod,Func,Args) of
  -		 Data when is_list(Data); is_binary(Data) ->
  -		     wrap_characters_to_binary(Data, Encoding, get(encoding));
  -		 Undef ->
  -		     Undef
  -	     end,
  -    put_chars(Result, Port);
  +%% Encoding option (unicode/latin1)
  +io_request({put_chars,unicode,Chars}, Port) ->
  +    case wrap_characters_to_binary(Chars, unicode, get(encoding)) of
  +        error ->
  +            {error,{error,put_chars}};
  +        Bin ->
  +            put_chars(Bin, Port)
  +    end;
  +io_request({put_chars,unicode,Mod,Func,Args}, Port) ->
  +    case catch apply(Mod, Func, Args) of
  +        Data when is_list(Data); is_binary(Data) ->
  +            case wrap_characters_to_binary(Data, unicode, get(encoding)) of
  +                Bin when is_binary(Bin) ->
  +                    put_chars(Bin, Port);
  +                error ->
  +                    {error,{error,put_chars}}
  +            end;
  +        _ ->
  +            {error,{error,put_chars}}
  +    end;
  +io_request({put_chars,latin1,Chars}, Port) ->
  +    case catch unicode:characters_to_binary(Chars, latin1, get(encoding)) of
  +        Data when is_binary(Data) ->
  +            put_chars(Data, Port);
  +        _ ->
  +            {error,{error,put_chars}}
  +    end;
  +io_request({put_chars,latin1,Mod,Func,Args}, Port) ->
  +    case catch apply(Mod, Func, Args) of
  +        Data when is_list(Data); is_binary(Data) ->
  +            case
  +                catch unicode:characters_to_binary(Data, latin1, get(encoding))
  +            of
  +                Bin when is_binary(Bin) ->
  +                    put_chars(Bin, Port);
  +                _ ->
  +                    {error,{error,put_chars}}
  +            end;
  +        _ ->
  +            {error,{error,put_chars}}
  +    end;
   %% BC if called from pre-R13 node
   io_request({put_chars,Chars}, Port) -> 
       io_request({put_chars,latin1,Chars}, Port); 
  
positive.code: 		_Else ->
  		    16#10ffff
  	    end,
      unicode:characters_to_binary(
        [ case X of
  	    $\n ->
  		if
  		    TrNl ->
  			"\r\n";
  		    true ->
  			$\n
  		end;
  	    High when High > Limit ->
  		["\\x{",erlang:integer_to_list(X, 16),$}];
  	    Ordinary ->
  		Ordinary
  	end || X <- unicode:characters_to_list(Chars,From) ],unicode,To).
  
negative.code: %% put_chars
  put_chars(Chars, Port) when is_binary(Chars) ->
      _ = put_port(Chars, Port),
      {ok,ok}.
  
  %% setopts
  setopts(Opts0) ->
  