Fix deep recursion in ArraySource

Deep (more than 1 level) recursion in the ArraySource never really worked properly.