fixed DoRecursive