Index: uspace/srv/hid/remcons/remcons.c
===================================================================
--- uspace/srv/hid/remcons/remcons.c	(revision c23a1fec0daac5c220e99d8504b30c1edb1d5fb1)
+++ uspace/srv/hid/remcons/remcons.c	(revision 89e5c0c74547ac080d125e5482bd7736822f26de)
@@ -532,5 +532,5 @@
 	remcons_t *remcons = (remcons_t *)arg;
 
-	(void)telnet_user_send_data(remcons->user, str, str_size(str));
+	(void)telnet_user_send_raw(remcons->user, str, str_size(str));
 }
 
Index: uspace/srv/hid/remcons/user.c
===================================================================
--- uspace/srv/hid/remcons/user.c	(revision c23a1fec0daac5c220e99d8504b30c1edb1d5fb1)
+++ uspace/srv/hid/remcons/user.c	(revision 89e5c0c74547ac080d125e5482bd7736822f26de)
@@ -215,5 +215,5 @@
  * might be negative.
  */
-static errno_t telnet_user_recv_next_byte_no_lock(telnet_user_t *user, char *byte)
+static errno_t telnet_user_recv_next_byte_locked(telnet_user_t *user, char *byte)
 {
 	errno_t rc;
@@ -322,5 +322,5 @@
 			fibril_mutex_unlock(&user->guard);
 
-			errno_t rc = telnet_user_recv_next_byte_no_lock(user, &next_byte);
+			errno_t rc = telnet_user_recv_next_byte_locked(user, &next_byte);
 			if (rc != EOK)
 				return rc;
@@ -372,5 +372,5 @@
 }
 
-static errno_t telnet_user_send_raw(telnet_user_t *user,
+static errno_t telnet_user_send_raw_locked(telnet_user_t *user,
     const void *data, size_t size)
 {
@@ -408,5 +408,5 @@
  * @param size Size of @p data buffer in bytes.
  */
-static errno_t telnet_user_send_data_no_lock(telnet_user_t *user,
+static errno_t telnet_user_send_data_locked(telnet_user_t *user,
     const char *data, size_t size)
 {
@@ -433,5 +433,6 @@
 	}
 
-	errno_t rc = telnet_user_send_raw(user, converted, converted_size);
+	errno_t rc = telnet_user_send_raw_locked(user, converted,
+	    converted_size);
 	free(converted);
 
@@ -450,5 +451,23 @@
 	fibril_mutex_lock(&user->guard);
 
-	errno_t rc = telnet_user_send_data_no_lock(user, data, size);
+	errno_t rc = telnet_user_send_data_locked(user, data, size);
+
+	fibril_mutex_unlock(&user->guard);
+
+	return rc;
+}
+
+/** Send raw non-printable data to the socket.
+ *
+ * @param user Telnet user.
+ * @param data Data buffer (not zero terminated).
+ * @param size Size of @p data buffer in bytes.
+ */
+errno_t telnet_user_send_raw(telnet_user_t *user, const char *data,
+    size_t size)
+{
+	fibril_mutex_lock(&user->guard);
+
+	errno_t rc = telnet_user_send_raw_locked(user, data, size);
 
 	fibril_mutex_unlock(&user->guard);
@@ -487,5 +506,5 @@
 		char data = '\b';
 		/* Ignore errors. */
-		telnet_user_send_data_no_lock(user, &data, 1);
+		telnet_user_send_data_locked(user, &data, 1);
 	}
 	user->cursor_x = new_x;
Index: uspace/srv/hid/remcons/user.h
===================================================================
--- uspace/srv/hid/remcons/user.h	(revision c23a1fec0daac5c220e99d8504b30c1edb1d5fb1)
+++ uspace/srv/hid/remcons/user.h	(revision 89e5c0c74547ac080d125e5482bd7736822f26de)
@@ -98,4 +98,5 @@
 extern errno_t telnet_user_get_next_keyboard_event(telnet_user_t *, kbd_event_t *);
 extern errno_t telnet_user_send_data(telnet_user_t *, const char *, size_t);
+extern errno_t telnet_user_send_raw(telnet_user_t *, const char *, size_t);
 extern errno_t telnet_user_flush(telnet_user_t *);
 extern errno_t telnet_user_recv(telnet_user_t *, void *, size_t, size_t *);
