I guess this is a threading issue, since an asynchronous call seems to be involved triggered by the property changing event. I am guessing (sorry had no time to look at the code yet) that by the time the asynchronous method executes, the value of the property has changed. But then again I could be completely wrong.