Whilst I'm on the subject. Does anyone know if there is a reason why the forms api refuses to distinguish between a value not being supplied and it being explicitly empty string? It seems right that the -optional flag should cause a validation error in either case but I would have thought it would be useful if other code can tell the difference. The forms api seems to want to make them appear the same.