diff --git a/multiselect.module b/multiselect.module
index 7f9ec52..1867d17 100644
--- a/multiselect.module
+++ b/multiselect.module
@@ -372,12 +372,20 @@ function multiselect_theme() {
  */
 function theme_multiselect($variables) {
   $element = $variables['element'];
-  element_set_attributes($element, array('id', 'name', 'size', 'multiple', 'default_value', 'required'));
+  element_set_attributes($element, array('id', 'name', 'size', 'multiple', 'default_value'));
   _form_set_class($element, array('form-multiselect'));
   $options = $element['#options']; // All available options as defined by the element
   $items = $element['#default_value']; // All selected options are referred to as "items".
   $element['#field_name'] = $element['#name']; // CCK calls the #name "#field_name", so let's duplicate that..
-  $required = $element['#required'];
+  if (!empty($element['#required']) && $element['#required']) {
+    // Only set required attribute if we have a valid value or set to true.
+    element_set_attributes($element, array('required'));
+    $required = $element['#required'];
+  }
+  else {
+    // Required should be false by default.
+    $required = FALSE;
+  }
 
   $widget = _multiselect_build_widget_code($options, $items, $element, $required);
 
