diff --git a/telnet-proxy.c b/telnet-proxy.c
index 4f2f0a9..dbbbf05 100644
--- a/telnet-proxy.c
+++ b/telnet-proxy.c
@@ -172,8 +172,7 @@
 		print_buffer(ev->buffer, ev->size);
 		printf(COLOR_NORMAL "\n");
 
-		libtelnet_send_data(&conn->remote->telnet, ev->buffer, ev->size,
-				conn->remote);
+		libtelnet_send_data(&conn->remote->telnet, ev->buffer, ev->size);
 		break;
 	/* data must be sent */
 	case LIBTELNET_EV_SEND:
@@ -190,8 +189,7 @@
 		printf("%s IAC %s" COLOR_NORMAL "\n", conn->name,
 				get_cmd(ev->command));
 
-		libtelnet_send_command(&conn->remote->telnet, ev->command,
-				conn->remote);
+		libtelnet_send_command(&conn->remote->telnet, ev->command);
 		break;
 	/* negotiation */
 	case LIBTELNET_EV_NEGOTIATE:
@@ -199,7 +197,7 @@
 				get_cmd(ev->command), (int)ev->telopt, get_opt(ev->telopt));
 
 		libtelnet_send_negotiate(&conn->remote->telnet, ev->command,
-				ev->telopt, conn->remote);
+				ev->telopt);
 		break;
 	/* subnegotiation */
 	case LIBTELNET_EV_SUBNEGOTIATION:
@@ -212,7 +210,7 @@
 		printf(COLOR_NORMAL "\n");
 
 		libtelnet_send_subnegotiation(&conn->remote->telnet, ev->telopt,
-				ev->buffer, ev->size, conn->remote);
+				ev->buffer, ev->size);
 		break;
 	/* compression notification */
 	case LIBTELNET_EV_COMPRESS:
@@ -333,8 +331,10 @@
 		client.remote = &server;
 
 		/* initialize telnet boxes */
-		libtelnet_init(&server.telnet, _event_handler, LIBTELNET_MODE_PROXY);
-		libtelnet_init(&client.telnet, _event_handler, LIBTELNET_MODE_PROXY);
+		libtelnet_init(&server.telnet, _event_handler, LIBTELNET_MODE_PROXY,
+				&server);
+		libtelnet_init(&client.telnet, _event_handler, LIBTELNET_MODE_PROXY,
+				&client);
 
 		/* initialize poll descriptors */
 		memset(pfd, 0, sizeof(pfd));
@@ -348,7 +348,7 @@
 			/* read from server */
 			if (pfd[0].revents & POLLIN) {
 				if ((rs = recv(server.sock, buffer, sizeof(buffer), 0)) > 0) {
-					libtelnet_push(&server.telnet, buffer, rs, (void*)&server);
+					libtelnet_push(&server.telnet, buffer, rs);
 				} else if (rs == 0) {
 					printf("%s DISCONNECTED" COLOR_NORMAL "\n", server.name);
 					break;
@@ -362,7 +362,7 @@
 			/* read from client */
 			if (pfd[1].revents & POLLIN) {
 				if ((rs = recv(client.sock, buffer, sizeof(buffer), 0)) > 0) {
-					libtelnet_push(&client.telnet, buffer, rs, (void*)&client);
+					libtelnet_push(&client.telnet, buffer, rs);
 				} else if (rs == 0) {
 					printf("%s DISCONNECTED" COLOR_NORMAL "\n", client.name);
 					break;
