don't set dirty bit if nothing changed