make libtelnet_t private; libtelnet_init now returns a pointer instead of taking one, and libtelnet_free frees the pointer passed in
diff --git a/telnet-client.c b/telnet-client.c
index 42a5ba5..5565656 100644
--- a/telnet-client.c
+++ b/telnet-client.c
@@ -29,7 +29,7 @@
 #include "libtelnet.h"
 
 static struct termios orig_tios;
-static telnet_t telnet;
+static telnet_t *telnet;
 static int do_echo;
 
 static const telnet_telopt_t telopts[] = {
@@ -56,11 +56,11 @@
 		if (buffer[i] == '\r' || buffer[i] == '\n') {
 			if (do_echo)
 				printf("\r\n");
-			telnet_send(&telnet, crlf, 2);
+			telnet_send(telnet, crlf, 2);
 		} else {
 			if (do_echo)
 				putchar(buffer[i]);
-			telnet_send(&telnet, buffer + i, 1);
+			telnet_send(telnet, buffer + i, 1);
 		}
 	}
 	fflush(stdout);
@@ -197,7 +197,7 @@
 	do_echo = 1;
 
 	/* initialize telnet box */
-	telnet_init(&telnet, telopts, _event_handler, 0, &sock);
+	telnet = telnet_init(telopts, _event_handler, 0, &sock);
 
 	/* initialize poll descriptors */
 	memset(pfd, 0, sizeof(pfd));
@@ -224,7 +224,7 @@
 		/* read from client */
 		if (pfd[1].revents & POLLIN) {
 			if ((rs = recv(sock, buffer, sizeof(buffer), 0)) > 0) {
-				telnet_recv(&telnet, buffer, rs);
+				telnet_recv(telnet, buffer, rs);
 			} else if (rs == 0) {
 				break;
 			} else {
@@ -236,7 +236,7 @@
 	}
 
 	/* clean up */
-	telnet_free(&telnet);
+	telnet_free(telnet);
 	close(sock);
 
 	return 0;