 							fragmentationOpcode = frame.opcode;
 						}
 						else {
-							throw new WebSocketError("Illegal TEXT_FRAME received in the middle of a fragmented message.  Expected a continuation or control frame.");
+							drop(WebSocketCloseStatus.PROTOCOL_ERROR,
+								 "Illegal TEXT_FRAME received in the middle of a fragmented message.  Expected a continuation or control frame.");
+							return;
 						}
 					}
 					break;

							fragmentationOpcode = frame.opcode;
						}
						else {
							throw new WebSocketError("Illegal BINARY_FRAME received in the middle of a fragmented message.  Expected a continuation or control frame.");
						}						
					}
					break;

							drop(WebSocketCloseStatus.PROTOCOL_ERROR,
									"Unexpected continuation frame.");
							return;
						}
						
						fragmentationSize += frame.length;
						
