Thanks for the clarification. I think this really requires a comment because it is one of the many, many issues that make reparse points *so* different from regular POSIX-style symbolic links. With that comment, I think your original diff is more readable than the latter one. I was just confused why you had to check for the reparse point *first* and thereby end up with a larger diff than I thought necessary.