anchor.diff:      NewState = State#state{ devices = Devices },
       { noreply, NewState };
   
  -handle_call( { stop_device, DeviceId }, _From, State ) ->
  +% FIXME - the state of the device should be checked
  +% eg. can't be possible to stop it when it's already stopping
  +handle_call( { stop_device, DeviceId }, From, State ) ->
       case orddict:find( DeviceId, State#state.devices ) of
           { ok, Device } ->
               ok = lurch_device:stop( Device#device.id ),
               NewDevices = orddict:update(
                   DeviceId,
  -                fun( D ) -> D#device{ state = stopping } end,
  +                fun( D ) -> D#device{ state = stopping, stopped_by = From } end,
                   State#state.devices
               ),
               NewState = State#state{ devices = NewDevices },
  -            % FIXME - reply when the device really stops
  -            { reply, ok, NewState };
  +            { noreply, NewState };
           error -> {reply, { error, no_such_device }, State }
       end;
   
  
positive.code:             { ok, Id }
          end
      ),
      meck:expect( lurch_device, stop, 1, ok ).
  
  setup_server_stop( _ ) ->
      setup_meck_stop( ok ),
  
negative.code: test_stop_response( ok ) ->
      Id = make_ref(),
      Id2 = make_ref(),
      Device = #device{ id = Id, state = running,
                        stopped_by = { make_ref(), self() } },
      Devices = orddict:store( Id, Device, orddict:new() ),
      S0 = #state{ devices = Devices },
  
  