anchor.diff:  	  false = is_process_alive(Parser)
       end,
       Config.%}}}F
  +
  +ake_msg(_Config) ->
  +    otr_fsm:consume(fsm1, {user, start_otr}),
  +    {to_user1, {info, {encrypted_new_dsa_fp, _, _}}} =
  +	receive X -> erlang:display(X), X end,
  +    {to_user2, {info, {encrypted_new_dsa_fp, _, _}}} =
  +	receive Y -> erlang:display(Y), Y end,
  +    otr_fsm:consume(fsm2, {user, {message, "FOOO"}}),
  +    {to_user1, {message, "FOOO"}} = receive
  +				      Z -> erlang:display(Z), Z
  +				    end,
  +    ok.
   
   pt_usr_1(Config) ->
       ct:comment("message from user while in state [plaintext]"),
  
positive.code:     ok.
  
  %F{{{ internal functions
  setup_fsm(Config, Opts) ->
      Self = self(),
      EmitUser = fun (X) -> Self ! {to_user, X} end,
      EmitNet = fun (X) -> Self ! {to_net, X} end,
      {ok, Parser} = otr_parser_fsm:start_link(),
      {ok, Fsm} = otr_fsm:start_link([{emit_user, EmitUser},
  				    {emit_net, EmitNet}
  				    | Opts]),
      otr_parser_fsm:set_emit_fun(Parser,
  				fun (X) -> otr_fsm:consume(Fsm, {net, X}) end),
  
negative.code: 
  -include("MessageTestVectors.hrl").
  
  -include("DSATestVectors.hrl").
  
  init_per_suite(Config) ->
      case application:start(crypto) of
        ok ->
  	  ct:comment("crypto application started"),
  	  [{stop_crypto, true} | Config];
        {error, {already_started, crypto}} -> Config
      end.
  
  end_per_suite(Config) ->
      case proplists:lookup(stop_crypto, Config) of
        {stop_crypto, true} ->
  	  application:stop(crypto),
  	  ct:comment("crypto application stopped");
        _ -> ok
      end,
      Config.
  
  all() ->
      [pt_usr_1, pt_usr_2, pt_usr_start, pt_usr_stop,
       pt_net_1, pt_net_error_1, pt_net_error_2, pt_net_data, ake_msg,
       cover].
  
  %F{{{ init_per_testcase/2
  