diff --git a/secure/telnetneg.c b/secure/telnetneg.c
index 6a7a356..5760169 100644
--- a/secure/telnetneg.c
+++ b/secure/telnetneg.c
@@ -134,7 +134,7 @@
     return efun::binary_message(arr, bm_flags);
 }
 
-protected varargs int send_telnet_neg_str(string str, int bm_flags) {
+protected varargs int send_telnet_neg_str(bytes str, int bm_flags) {
 #ifdef __DEBUG__
     // Debugausgaben zur Zeit nur fuer arraybasierte Variante
     return send_telnet_neg(to_array(str), bm_flags);
@@ -148,16 +148,16 @@
     case DO:
     case DONT:
         (opt->lo_wishes)->remoteside = str[0];
-        str=sprintf("%c%s",IAC,str);
+        str=to_bytes(sprintf("%c%s",IAC,str), "ASCII");
         break;
     case WILL:
     case WONT:
         (opt->lo_wishes)->localside = str[0];
-        str=sprintf("%c%s",IAC,str);
+        str=to_bytes(sprintf("%c%s",IAC,str), "ASCII");
         break;
     case SB:
-        (opt->lo_wishes)->sbdata = map(explode(str[0..],""),#'to_int);
-        str=sprintf("%c%s%c%c", IAC, str, IAC, SE);
+        (opt->lo_wishes)->sbdata = map(explode(str[0..],""), #'to_int);
+        str=to_bytes(sprintf("%c%s%c%c", IAC, str, IAC, SE), "ASCII");
         break;
     default:
         break;
@@ -244,8 +244,8 @@
     send_telnet_neg( ({WONT, TELOPT_MSSP }) );
   else
   {
-    send_telnet_neg_str(sprintf("%c%c%s",
-          SB, TELOPT_MSSP, mssp->get_telnegs_str()));
+    send_telnet_neg_str(to_bytes(sprintf("%c%c%s",
+          SB, TELOPT_MSSP, mssp->get_telnegs_str()), "ASCII"));
     // die Daten brauchen wir nicht mehr
     opt->lo_wishes->sbdata = 0;
   }
diff --git a/secure/telnetneg.h b/secure/telnetneg.h
index 87b6723..8a84f6b 100644
--- a/secure/telnetneg.h
+++ b/secure/telnetneg.h
@@ -37,7 +37,7 @@
                                   int initneg);
 protected int do_telnet_neg(int option, int action);
 protected varargs int send_telnet_neg(int *arr, int bm_flags);
-protected varargs int send_telnet_neg_str(string str, int bm_flags);
+protected varargs int send_telnet_neg_str(bytes str, int bm_flags);
 
 #endif // _SECURE_TELNETNEG_H_PROTOS_
 #endif // NEED_PROTOTYPES
diff --git a/std/player/protocols/gmcp.c b/std/player/protocols/gmcp.c
index d3a8407..b46ac48 100644
--- a/std/player/protocols/gmcp.c
+++ b/std/player/protocols/gmcp.c
@@ -132,8 +132,9 @@
 private void GMCP_send(string cmd, mixed data)
 {
   GMCP_DEBUG("GMCP_send",sprintf("%s %O",cmd,data), 30);
-  send_telnet_neg_str(sprintf("%c%c%s %s", SB, TELOPT_GMCP,
-                              cmd, json_serialize(data)), 1);
+  send_telnet_neg_str(to_bytes(
+        sprintf("%c%c%s %s", SB, TELOPT_GMCP,
+                cmd, json_serialize(data)),"ASCII//TRANSLIT"), 1);
 }
 
 private void GMCP_unregister_module(string mod)
