diff --git a/options_element.inc b/options_element.inc
index 91537df..e8ee9e0 100644
--- a/options_element.inc
+++ b/options_element.inc
@@ -197,7 +197,12 @@ function _form_options_expand($element) {
 function _form_options_validate($element, &$form_state) {
   // Convert text to an array of options.
   $duplicates = array();
-  $options = form_options_from_text($element['#value']['options_text'], $element['#key_type'], empty($element['#optgroups']), $duplicates);
+  if (isset($element['#value']['options_text'])) {
+    $options = form_options_from_text($element['#value']['options_text'], $element['#key_type'], empty($element['#optgroups']), $duplicates);
+  }
+  else {
+    $options = $element['#value']['options'];
+  }
 
   // Check if a key is used multiple times.
   if (count($duplicates) == 1) {
