Prevent Stock Incrementing When Order Cancelled?

The usual reason for cancelling an order is owing to no stock because of a stock level error.

But cancelling an order because of no physical stock causes the store stock to be incremented again so we go round in circles, is there any way to prevent this?