--- includes/form.inc 2010-05-19 08:02:32.000000000 -0700 +++ includes/patched.form.inc 2010-06-27 14:22:21.000000000 -0700 @@ -682,7 +682,8 @@ function _form_validate($elements, &$for // A simple call to empty() will not cut it here as some fields, like // checkboxes, can return a valid value of '0'. Instead, check the // length if it's a string, and the item count if it's an array. - if ($elements['#required'] && (!count($elements['#value']) || (is_string($elements['#value']) && strlen(trim($elements['#value'])) == 0))) { + // First, let's check what kind of field this is... + if ($elements['#required'] && (!count($elements['#value']) || ($elements['#type'] == 'checkbox' && !$elements['#value']) || (is_string($elements['#value']) && strlen(trim($elements['#value'])) == 0))) { form_error($elements, $t('!name field is required.', array('!name' => $elements['#title']))); }