Index: modules/optionwidgets/optionwidgets.module
===================================================================
--- modules/optionwidgets/optionwidgets.module	(revision 17)
+++ modules/optionwidgets/optionwidgets.module	(working copy)
@@ -314,7 +314,19 @@
  */
 function optionwidgets_validate($element, &$form_state) {
   $field = $form_state['#field_info'][$element['#field_name']];
-  $updated = optionwidgets_form2data($element, $field);
+  // If user submitting form doesn't have #access to the field then
+  // we should use the existing field default values rather then then
+  // ones generated by the FAPI.
+  if (isset($element['#access']) && !$element['#access']) {
+    $updated = $element['#default_value'];
+    foreach ($updated as $key => $data) {
+      $updated[$key]['_error_element'] = $element['_error_element']['#value'];
+    }
+  }
+  // Otherwise process as normal
+  else {
+    $updated = optionwidgets_form2data($element, $field);
+  }
   form_set_value($element, $updated, $form_state);
 }
 
