If you've got a mechanical error which only occurs occasionally surely any software solution will have to either detect or predict the error and only correct when it occurs?