Thanks Richard

Ryan Scott has also put together a solution[1], which is basically what you proposed.

But in terms of trying to clean up the code by removing a straightforward constraint type,
I think this solution adds more complexity than it removes.

So I will leave it as it is.

Alan

[1] http://lpaste.net/365181