bugfix: correctly execute updates with falsey values

This was causing me trouble when implementing email verification. Tracked it down to a simple mistake in how val is treated in this loop. Take a look @aaronyo