anchor.diff:                      socket=Socket,
                       continuation_stream_id = StreamId
                      }) ->
  -    Frame = {FH,_} = http2_frame:read(Socket),
  -    lager:debug("[continuation] [next] ~p", [http2_frame:format(Frame)]),
  -
  -    Response = case {FH#frame_header.stream_id, FH#frame_header.type} of
  -                   {StreamId, ?CONTINUATION} ->
  -                       route_frame(Frame, S);
  -                   _ ->
  -                       go_away(?PROTOCOL_ERROR, S)
  -               end,
  +    lager:debug("[continuation] Waiting for next frame"),
  +    Response =
  +        case http2_frame:read(Socket, 2500) of
  +            {error, _} ->
  +                {next_state, continuation, S};
  +            Frame = {#frame_header{
  +                     stream_id=StreamId,
  +                     type=?CONTINUATION
  +                    }, _} ->
  +                lager:debug("[continuation] [next] ~p", [http2_frame:format(Frame)]),
  +                route_frame(Frame, S);
  +            Frame ->
  +                lager:debug("[continuation] [next] ~p", [http2_frame:format(Frame)]),
  +                go_away(?PROTOCOL_ERROR, S)
  +        end,
       gen_fsm:send_event(self(), next),
       Response;
   continuation(_, State) ->
  
positive.code: 
      {NewStream, NewConnectionState} = http2_stream:recv_frame(F, {Stream, S}),
  
      %% TODO: NewStreams = replace old stream
      NewStreams = [{StreamId,NewStream}|NewStreamsTail],
  
      {next_state, continuation, NewConnectionState#connection_state{
  
negative.code:             %% YAY!
              {next_state, StateName, State}
      end;
  handle_event(_E, StateName, State) ->
      {next_state, StateName, State}.
  
  