diff --git a/lib/roles/ws/ext/extension-permessage-deflate.c b/lib/roles/ws/ext/extension-permessage-deflate.c
index b832d1d27870239281405e1e438dc388d114f362..98ad04a44f9fec4673e381c13893fb45e3162de0 100644
--- a/lib/roles/ws/ext/extension-permessage-deflate.c
+++ b/lib/roles/ws/ext/extension-permessage-deflate.c
@@ -179,7 +179,7 @@ lws_extension_callback_pm_deflate(struct lws_context *context,
 	case LWS_EXT_CB_PAYLOAD_RX:
 		lwsl_ext(" %s: LWS_EXT_CB_PAYLOAD_RX: in %d, existing in %d\n",
 			 __func__, ebuf->len, priv->rx.avail_in);
-		if (!(wsi->ws->rsv_first_msg & 0x40))
+		if (!(wsi->ws->rsv_first_msg & 0x40) || (wsi->ws->opcode & 8))
 			return 0;
 
 		// lwsl_hexdump_debug(ebuf->token, ebuf->len);