Sometimes new components did not get added.
Since "dirty" components are just unused memory, new components could
get assigned the same memory address. If this happens remove the
component from dirtyComponents when it is added.