I agree that the project to surface constraint can not be used with target aliasing. You would want to use an end condition in this case. Project to surface only goes to surface if I remember correctly. I do not use it at all due to inconsistent/unreliable results.
Marc
Marc