Same here, state should be changed only if previous state was checkout or on hold (in the latter case you release units as well)