diff --git a/README b/README
index 4cf91c7..0be8952 100644
--- a/README
+++ b/README
@@ -105,8 +105,8 @@
  Note: it is very important that ALL data sent to the remote end of
  the connection be passed through libtelnet.  All user input or
  process output that you wish to send over the wire should be given
- to libtelnet_send_data().  Do NOT send or buffer unprocessed output
- data directly!
+ to one of the following functions.  Do NOT send or buffer
+ unprocessed output data directly!
 
  void libtelnet_send_command(libtelnet_t *telnet, unsigned char cmd);
    Sends a single "simple" TELNET command, such as the GO-AHEAD
@@ -144,10 +144,32 @@
    data to be sent, it may be easier to manually send the SB telopt
    header and SE footer around mulitple calls to send_data.
 
-   NOTE: libtelnet_send_subrequest() does have special behavior in
-   PROXY mode, as in that mode this function will automatically
+   NOTE: libtelnet_send_subnegotiation() does have special behavior
+   in PROXY mode, as in that mode this function will automatically
    detect the COMPRESS2 marker and enable zlib compression.
 
+ int libtelnet_printf(libtelnet_t *telnet, const char *fmt, ...);
+  This functions very similarly to fprintf, except that output
+  is sent through libtelnet for processing.  This is equivalent
+  to using snprintf() to format data into a buffer and then
+  sending the buffer to libtelnet_send_data().  The return code
+  is the length of the formatted text.
+
+  NOTE: due to an internal implementation detail, the maximum
+  lenth of the formatted text is 4096 characters.
+ 
+ int libtelnet_printf2(libtelnet_T *telnet, const char *fmt, ...);
+  Identical to libtelnet_print(), except that this variant will
+  also translate C newlines (\n) into a CRLF and translates
+  carriage returns (\r) into CRNUL, as required by TELNET.
+
+  NOTE: this function should only be used for regular data such
+  as user input (in client applications) or process output (in 
+  server applications).  If you are formatting data that is part
+  of a subnegotiation, you should always use libtelnet_printf()
+  instead, as you will rarely want newline translation inside of
+  subnegotiations.
+
 IId. Event Handling
 
  libtelnet relies on an event-handling mechanism for processing
