Branch for josephs comments

If there is a problem, the function should silently return FALSE.  The calling code should check for a TRUE/FALSE return value, and print any relevant error messages to the screen.