Is there a reason why do you want to use the Item Updated receiver specifically?
Do you absolutely need to do something Asynchronous?
For this we must add the synchronization parameter to our xml definition.
I’ve done some testing and the results are presented in this post. The test is performed when adding/changing/deleting the item’s user field using the UI (New and Edit form) and when adding/changing/deleting the field pragmatically.
3 types of events are attached to the lists and libraries: Adding, updating and deleting Each of its events can be retrieved synchronously (at the time of the action) andasynchronous (right after the end of the action).
It’s very easy to spot if a function is synchronous or asynchronous based on its name. Before Properties[«Field Name »] And yes, three possibilities depending on the actions and the synchronicity of the eventcan contain either the new value, or the old value, or nothing at all!
If you follow the link he uses you'll see the table for lists he uses is different from the one he references.
I use these rules of thumb not to have to look at that post all the time: So if you want to test if a specific column was changed you have to use the Item Updating instead of the Item Updated eventreceiver.