Rollback Approval Workflow

Hi,

I'm trying to work out if there's a solution to a problem I have. We've got an approval workflow that moves documents into an "Approved" state. We can go from "approved" back to "draft" to create a new revision of the document.

Occasionally we have a problem where people will make a new revision of a document and the requirement for that revision then disappears. Under these circumstances we want to be able to roll back the document to the last approved state, but we DO NOT want people to be able to directly transition from draft to approved under any other circumstance.

Rolling back doesn't work as it produces an error stating that the state transition is not allowed.

I was wondering if there's any way to allow a transition for rollback, but not under any other conditions?

Otherwise I'm thinking the alternative is using a special workflow state for "cancel revision", and then using code to restore all previous values and put the file back into the approval state.

Advice on whether there's an option I'm missing for allowing a transition for rollback only would be great.