1
I think there is a bug with XOBJ_DTYPE_EMAIL in object.php when this object is not required : you have an error if the email ='' and you can't store your object.
line 451
if (!preg_match("/^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+([.][a-z0-9-]+)+$/i",$cleanv)) {
$this->setErrors("Invalid Email");
I think this code is better
if ($cleanv != '' && !preg_match("/^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+([.][a-z0-9-]+)+$/i",$cleanv)) {
$this->setErrors("Invalid Email");