anchor.diff:                  Else ->
                       Else
               end;
  +        frame_incomplete ->
  +            frame_incomplete;
           {tcp_error, Reason} ->
               %% FIXME: close the connection ?
               % error_logger:error_msg("Abnormal Closure: ~p", [Reason]),
  
positive.code:     ok.
  
  
  ws_frame_info(#ws_state{sock=Socket},
                <<Fin:1, Rsv:3, Opcode:4, Masked:1, Len1:7, Rest/binary>>,
                Opts) ->
      case check_control_frame(Len1, Opcode, Fin) of
          ok ->
              case ws_frame_info_secondary(Socket, Masked, Len1, Rest, Opts) of
                  {ws_frame_info_secondary,Length,MaskingKey,Payload,Excess} ->
                      FrameInfo = #ws_frame_info{fin=Fin,
                                                 rsv=Rsv,
  
negative.code:     advanced_messages(FrameInfos, State, State#state.timeout).
  
  advanced_messages([], State, Tout) ->
      {ok, State#state{unused_stream= <<>>}, Tout};
  advanced_messages([{frame_incomplete, Unused}], State, Tout) ->
      %% Unused is a part of a potentially large (some kb) binary,
      %% so we copy it to detach it for gc purposes
      {ok, State#state{unused_stream=binary:copy(Unused,1)}, Tout};
  advanced_messages([FrameInfo|Rest], #state{close_timer=TRef}=State,
                    Tout) when TRef /= undefined ->
      case FrameInfo of
  