Ok, we need to clear out the old cached permissions when a user is updated. Here is the fix. Line 462 of admin/changeuser.php has this:
// ---------------
// Log this action
Right before that, add this:
// Delete the cached permissions so they are rebuilt
$query = "
delete from {$config['TABLE_PREFIX']}CACHED_PERMISSIONS
where USER_ID = ?
";
$dbh->do_placeholder_query($query,array($uid),__LINE__,__FILE__);