                        #{@eventSourceable}<#{command.targetId}>"), command)
     eventSourceable = @repository.find @eventSourceable, command.targetId
     throw Router.ERRORS.cannotHandleMessage(command) if !eventSourceable?
-    @repository.save(@_handleDomainErrors -> eventSourceable.handle(command))
+    eventSourceable = @_handleDomainErrors(-> eventSourceable.handle command)
+    @repository.save(eventSourceable) if eventSourceable?
 
   _logMsg: (message) -> "#{@configuration.appId}: #{this}: #{message}"
 

      @eventBus.subscribeTo @initializingMessage, (event) =>
        @log.info("#{this}: Creating new #{@eventSourceable} with event
                  #{event.typeName()}\n", event)
        @repository.save(@_handleDomainErrors -> new @eventSourceable(event))
    else if @initializingMessage.isSubclassOf(Space.messaging.Command)
      @commandBus.registerHandler @initializingMessage, (cmd) =>
        @log.info("#{this}: Creating new #{@eventSourceable} with command
                  #{cmd.typeName()}\n", cmd)
        @repository.save(@_handleDomainErrors -> new @eventSourceable(cmd))

  _routeEventToEventSourceable: (eventType) ->
    @eventBus.subscribeTo eventType, @_genericEventHandler

        thrower: @eventSourceable.toString(),
        error: error
      }))
      return null
