a few refinments to updateSingle, which should no more return false positives