anchor.diff:  	    {atomic, ok} = 
   		mnesia:transaction(fun() -> 
   					   mnesia:write(sess_cache, 
  -							Key, Value) 
  +							{sess_cache, Key, Value}, write) 
   				   end)
       end.
   
   delete(Cache, Key) -> 
  -    io:format("~p~n",[?LINE]),
       case session_cb() of
   	list ->
   	    Cache ! {delete, Key};
  
positive.code: 					    mnesia:read(sess_cache, 
  							Key, read) 
  				    end) of
  		{atomic, [Session]} -> Session;
  		_ -> undefined
  	    end
      end.
  
  update(Cache, Key, Value) ->
      io:format("~p~n",[?LINE]),
      case session_cb() of
  	list ->
  	    Cache ! {update, Key, Value};
  
negative.code:     session_cache_process(mnesia,Config).
  
  session_cache_process(Type,Config) when is_list(Config) -> 
      reuse_session(Config).
  
  init([Type]) ->
      ets:new(ssl_test, [named_table, public, set]),
      ets:insert(ssl_test, {type, Type}),
      case Type of
  	list ->
  	    spawn(fun() -> session_loop([]) end);
  	mnesia ->
  	    mnesia:start(),
  	    {atomic,ok} = mnesia:create_table(sess_cache, []),
  	    sess_cache
      end.
  
  session_cb() ->
      [{type, Type}] = ets:lookup(ssl_test, type),
      Type.
  
  terminate(Cache) ->
      case session_cb() of
  	list ->
  	    Cache ! terminate;
  	mnesia ->
  	    catch {atomic,ok} = 
  		mnesia:delete_table(sess_cache)
      end.
  
  lookup(Cache, Key) ->        
      case session_cb() of
  	list ->
  	    Cache ! {self(), lookup, Key},
  