--- checkbox_validate.module	Fri May 30 00:14:40 2008
+++ checkbox_validate-updated.module	Thu Dec 04 11:30:05 2008
@@ -19,17 +19,23 @@ function checkbox_validate_recurse($form
 
     if (strpos($key, '#') === 0) {
 
-      if (isset($form_item['#type']) && $form_item['#type'] == 'checkbox' && isset($form_item['#required']) && $form_item['#required'] == TRUE) {
-         
-        $form_item['#element_validate'] = array('checkbox_validate_validation');
-        $form_item['#pre_render'][] = 'checkbox_validate_add_required_symbol'; 
-        return $form_item;
+      if (isset($form_item['#required']) && $form_item['#required'] == TRUE) {
+      
+        if (isset($form_item['#type']) && $form_item['#type'] == 'checkbox') {
+          $form_item['#element_validate'] = array('checkbox_validate_validation');
+          $form_item['#pre_render'][] = 'checkbox_validate_add_required_symbol';
+          return $form_item;
+        }
+	
+        if (isset($form_item['#type']) && $form_item['#type'] == 'optionwidgets_onoff') {
+          $form_item['#element_validate'] = array('checkbox_validate_optionwidget_onoff_validation');
+          return $form_item;
+        }
       }
       
-    }
+    } 
     else {
-
-      $form_item[$key] = checkbox_validate_recurse($value, $key);
+      $form_item[$key] = checkbox_validate_recurse($value);
     }
   }
 
@@ -49,6 +55,12 @@ function checkbox_validate_validation($e
   return;
 }
 
+function checkbox_validate_optionwidget_onoff_validation($element) { 
+  if (empty($element['value']['#value'])) {
+    form_error($element, t('!title field is required.', array('!title' => filter_xss_admin(($element['#title'])))));
+  }
+  return;
+}
 /**
  * Implementation of hook_theme().
  */
