Bug fix: always set message.source in spawn()