uses client_write()
diff --git a/lib/ldap.c b/lib/ldap.c
index 18b5905..5c1e1be 100644
--- a/lib/ldap.c
+++ b/lib/ldap.c
@@ -134,8 +134,7 @@
 static int WriteProc(void *param, char *text, int len)
 {
   struct UrlData *data = (struct UrlData *)param;
-
-  data->fwrite(text, 1, strlen(text), data->out);
+  client_write(data, CLIENTWRITE_BODY, text, 0);
   return 0;
 }
 
diff --git a/lib/telnet.c b/lib/telnet.c
index e8fa874..9c20cc2 100644
--- a/lib/telnet.c
+++ b/lib/telnet.c
@@ -713,8 +713,8 @@
 	 {
 	    break;   /* Ignore \0 after CR */
 	 }
-	 
-	 data->fwrite((char *)&c, 1, 1, data->out);
+
+	 client_write(data, CLIENTWRITE_BODY, (char *)&c, 1);
 	 continue;
 
       case TS_DATA:
@@ -728,7 +728,7 @@
 	    telrcv_state = TS_CR;
 	 }
 
-	 data->fwrite((char *)&c, 1, 1, data->out);
+	 client_write(data, CLIENTWRITE_BODY, (char *)&c, 1);
 	 continue;
 
       case TS_IAC:
@@ -752,8 +752,8 @@
 	   telrcv_state = TS_SB;
 	   continue;
 	case IAC:
-	   data->fwrite((char *)&c, 1, 1, data->out);
-	   break;
+          client_write(data, CLIENTWRITE_BODY, (char *)&c, 1);
+          break;
 	case DM:
 	case NOP:
 	case GA: