diff --git a/lib/core/output.c b/lib/core/output.c
index 9baa1d9d7f0a9362983c0f4a0483736fd8460444..a476df94f5a1e214721fb38267494565b1f2f587 100644
--- a/lib/core/output.c
+++ b/lib/core/output.c
@@ -156,7 +156,8 @@ int lws_issue_raw(struct lws *wsi, unsigned char *buf, size_t len)
 					    "deferred transaction completed\n",
 					    __func__);
 				wsi->http.deferred_transaction_completed = 0;
-				return lws_http_transaction_completed(wsi);
+				return lws_http_transaction_completed(wsi) ?
+							-1 : (int)real_len;
 			}
 #endif
 #endif