#708 Changed the behavior of source. It can manage to accept empty string.