Try without the nolock, see if you can reproduce it.
Nolock allows duplicate reads, in addition to dirty reads (and missed rows as well), so that's a probably cause for your problem.
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
We walk in the dark places no others will enter
We stand on the bridge and no one may pass