diff --git a/README b/README
index 69a35ec..bcf98fe 100644
--- a/README
+++ b/README
@@ -58,7 +58,7 @@
    API calls.
 
  void libtelnet_init(libtelnet_t *telnet, libtelnet_event_handler_t handler,
-     libtelnet_mode_t mode, void *user_data);
+     unsigned char flags, void *user_data);
    The libtelnet_init() function is responsible for initializing
    the data in a libtelnet_t structure.  It must be called
    immediately after establishing a connection and before any other
@@ -73,13 +73,10 @@
    information about the connection, including a socket descriptor
    for implementing LIBTELNET_EV_SEND event handling.
 
-   The mode parameter must be one of LIBTELNET_MODE_SERVER,
-   LIBTELNET_MODE_CLIENT, or LIBTELNET_MODE_PROXY.  These slightly
-   alter the behavior of libtelnet in certain instances.  If you are
-   implementing a TELNET server, use the SERVER mode.  If you are
-   implementing a client, use the CLIENT mode.  The PROXY mode
-   enables special behavior for telnet-proxy (or similar
-   applications).
+   The flags parameter can be any of the following flag constants
+   bit-or'd together, or 0 to leave all options disabled.
+
+    LIBTELNET_FLAG_PROXY   - operate in proxy mode
  
  boid libtelnet_free(libtelnet_t *telnet);
    Releases any internal memory allocated by libtelnet.  This must
diff --git a/libtelnet.c b/libtelnet.c
index eb04e0a..1f9e606 100644
--- a/libtelnet.c
+++ b/libtelnet.c
@@ -103,11 +103,11 @@
 
 /* initialize a telnet state tracker */
 void libtelnet_init(libtelnet_t *telnet, libtelnet_event_handler_t eh,
-		libtelnet_mode_t mode, void *user_data) {
+		unsigned char flags, void *user_data) {
 	memset(telnet, 0, sizeof(libtelnet_t));
 	telnet->ud = user_data;
 	telnet->eh = eh;
-	telnet->mode = mode;
+	telnet->flags = flags;
 }
 
 /* free up any memory allocated by a state tracker */
@@ -288,8 +288,7 @@
 				 */
 				if (telnet->sb_telopt == LIBTELNET_TELOPT_COMPRESS2 &&
 						telnet->z_inflate == 0 &&
-						(telnet->mode == LIBTELNET_MODE_CLIENT ||
-						 telnet->mode == LIBTELNET_MODE_PROXY)) {
+						telnet->flags & LIBTELNET_FLAG_PROXY) {
 
 					if ((telnet->z_inflate = _init_zlib(telnet, 0, 1)) == 0)
 						break;
@@ -476,7 +475,7 @@
 	/* if we're a proxy and we just sent the COMPRESS2 marker, we must
 	 * make sure all further data is compressed if not already.
 	 */
-	if (telnet->mode == LIBTELNET_MODE_PROXY &&
+	if (telnet->flags & LIBTELNET_FLAG_PROXY &&
 			telnet->z_deflate == 0 &&
 			opt == LIBTELNET_TELOPT_COMPRESS2) {
 
@@ -499,13 +498,6 @@
 				"compression already enabled");
 		return;
 	}
-	
-	/* only supported by servers */
-	if (telnet->mode != LIBTELNET_MODE_SERVER) {
-		_error(telnet, __LINE__, __func__, LIBTELNET_EBADVAL, 0,
-				"only supported in SERVER mode");
-		return;
-	}
 
 	/* attempt to create output stream first, bail if we can't */
 	if ((zlib = _init_zlib(telnet, 1, 0)) == 0)
diff --git a/libtelnet.h b/libtelnet.h
index f9950ee..6a698c6 100644
--- a/libtelnet.h
+++ b/libtelnet.h
@@ -89,12 +89,8 @@
 #define LIBTELNET_TELOPT_ZMP 93
 #define LIBTELNET_TELOPT_EXOPL 255
 
-/* libtelnet modes */
-enum libtelnet_mode_t {
-	LIBTELNET_MODE_SERVER = 0,
-	LIBTELNET_MODE_CLIENT,
-	LIBTELNET_MODE_PROXY
-};
+/* libtelnet feature flags */
+#define LIBTELNET_FLAG_PROXY (1<<0)
 
 /* telnet states */
 enum libtelnet_state_t {
@@ -167,15 +163,15 @@
 	unsigned int length;
 	/* current state */
 	enum libtelnet_state_t state;
-	/* processing mode */
-	enum libtelnet_mode_t mode;
+	/* option flags */
+	unsigned char flags;
 	/* current subnegotiation telopt */
 	unsigned char sb_telopt;
 };
 
 /* initialize a telnet state tracker */
 extern void libtelnet_init(libtelnet_t *telnet, libtelnet_event_handler_t eh,
-		libtelnet_mode_t mode, void *user_data);
+		unsigned char flags, void *user_data);
 
 /* free up any memory allocated by a state tracker */
 extern void libtelnet_free(libtelnet_t *telnet);
diff --git a/telnet-client.c b/telnet-client.c
index 2a82338..c79977b 100644
--- a/telnet-client.c
+++ b/telnet-client.c
@@ -225,7 +225,7 @@
 	do_echo = 1;
 
 	/* initialize telnet box */
-	libtelnet_init(&telnet, _event_handler, LIBTELNET_MODE_CLIENT, &sock);
+	libtelnet_init(&telnet, _event_handler, 0, &sock);
 
 	/* initialize poll descriptors */
 	memset(pfd, 0, sizeof(pfd));
diff --git a/telnet-proxy.c b/telnet-proxy.c
index 7f7d9dd..078806d 100644
--- a/telnet-proxy.c
+++ b/telnet-proxy.c
@@ -336,9 +336,9 @@
 		client.remote = &server;
 
 		/* initialize telnet boxes */
-		libtelnet_init(&server.telnet, _event_handler, LIBTELNET_MODE_PROXY,
+		libtelnet_init(&server.telnet, _event_handler, LIBTELNET_FLAG_PROXY,
 				&server);
-		libtelnet_init(&client.telnet, _event_handler, LIBTELNET_MODE_PROXY,
+		libtelnet_init(&client.telnet, _event_handler, LIBTELNET_FLAG_PROXY,
 				&client);
 
 		/* initialize poll descriptors */
