IF Myfunc() *** Do something ELSE *** Something else ENDIFHowever, as you as you say, it is sometimes nice to be able to return more detailed values and I have used -1 (Error), 0 (False) and 1 (True) successfully too. When you start looking outside VFP you will realize that most servers do not implement Logical values as VFP does, and you are forced to use numeric values anyway.