Generally speaking, you should never compare iterators from two different compilers
http://stackoverflow.com/questions/4657513/comparing-iterators-from-different-containers
It seems like this was just an overlook that happened to work on most systems. I was not able to thoroughly test this change, but it fixed an issue I was having in VC10.
It's possible the prev.end() was a copy paste error that was meant to be new.end() anyways.