diff --git a/changelog b/changelog
index 8e59225120931ef5edb7e03205968a2fa9c390a4..95e6194060e7f04773601c556b3ed262730e3b11 100644
--- a/changelog
+++ b/changelog
@@ -22,6 +22,16 @@ ssl and non-ssl connections are possible and may need to be treated differently
 in the user code.
 
 
+User api removal
+----------------
+
+protocols struct member no_buffer_all_partial_tx is removed.  Under some
+conditions like rewriting extention such as compression in use, the built-in
+partial send buffering is the only way to deal with the problem, so turning
+it off is deprecated.
+
+
+
 v1.3-chrome37-firefox30
 =======================
 
diff --git a/lib/libwebsockets.h b/lib/libwebsockets.h
index 3cd5b5978a2a1cac77967153f84f4cc319a2d616..a0c500acc1532620d7080fc09131ee184408c53c 100644
--- a/lib/libwebsockets.h
+++ b/lib/libwebsockets.h
@@ -858,14 +858,6 @@ typedef int (extension_callback_function)(struct libwebsocket_context *context,
  *		libwebsockets_remaining_packet_payload().  Notice that you
  *		just talk about frame size here, the LWS_SEND_BUFFER_PRE_PADDING
  *		and post-padding are automatically also allocated on top.
- * @no_buffer_all_partial_tx:  Leave at zero if you want the library to take
- *		care of all partial tx for you.  It's useful if you only have
- *		small tx packets and the chance of any truncated send is small
- *		enough any additional malloc / buffering overhead is less
- *		painful than writing the code to deal with partial sends.  For
- *		protocols where you stream big blocks, set to nonzero and use
- *		the return value from libwebsocket_write() to manage how much
- *		got send yourself.
  * @id:		ignored by lws, but useful to contain user information bound
  *		to the selected protocol.  For example if this protocol was
  *		called "myprotocol-v2", you might set id to 2, and the user
@@ -890,7 +882,6 @@ struct libwebsocket_protocols {
 	callback_function *callback;
 	size_t per_session_data_size;
 	size_t rx_buffer_size;
-	int no_buffer_all_partial_tx;
 	unsigned int id;
 
 	/*
diff --git a/lib/output.c b/lib/output.c
index 28e15a6d415523552ce94bd85b29d2d3a2d7901d..cd8da351e5226a5b51f7290f25bb8857c8a7a204 100644
--- a/lib/output.c
+++ b/lib/output.c
@@ -275,8 +275,7 @@ LWS_VISIBLE int libwebsocket_write(struct libwebsocket *wsi, unsigned char *buf,
 	if (wsi->u.ws.inside_frame)
 		goto do_more_inside_frame;
 
-	/* if he wants all partials buffered, never have a clean_buffer */
-	wsi->u.ws.clean_buffer = !wsi->protocol->no_buffer_all_partial_tx;
+	wsi->u.ws.clean_buffer = 1;
 
 	/*
 	 * give a chance to the extensions to modify payload