diff --git a/includes/form_builder.properties.inc b/includes/form_builder.properties.inc
index dd4c733..598db3e 100644
--- a/includes/form_builder.properties.inc
+++ b/includes/form_builder.properties.inc
@@ -212,6 +212,35 @@ function form_builder_property_options_form(&$form_state, $form_type, $element,
   return $form;
 }
 
+/**
+ * Configuration form for the "options_source" property.
+ */
+function form_builder_property_options_source_form(&$form_state, $form_type, $element) {
+  // Add support for webform option lists.
+  if ($info = _webform_select_options_info()) {
+    $options = array('' => t('None'));
+    foreach ($info as $name => $source) {
+      $options[$name] = $source['title'];
+    }
+
+    if (isset($form_state['input']['options_source'])) {
+      $element['#webform_component']['extra']['options_source'] = $form_state['input']['options_source'];
+    }
+
+    $form['options_source'] = array(
+      '#title' => t('Load a pre-built option list'),
+      '#type' => 'select',
+      '#options' => $options,
+      '#default_value' => $element['#webform_component']['extra']['options_source'],
+      '#weight' => 1,
+      '#description' => t('Use a pre-built list of options rather than entering options manually. Options will not be editable if using pre-built list.'),
+      '#weight' => 5,
+    );
+  }
+
+  return $form;
+}
+
 function form_builder_property_options_form_submit(&$form, &$form_state) {
   $options = $form_state['values']['options']['options_field'];
   $default_value = $form_state['values']['options']['default_value'];
@@ -227,6 +256,14 @@ function form_builder_property_options_form_submit(&$form, &$form_state) {
 
   $form_state['values']['options'] = $options;
   $form_state['values']['default_value'] = $default_value;
+
+  // Support for predefined option lists.
+  if (isset($form_state['values']['options_source'])) {
+    $form_state['values']['extra']['options_source'] = $form_state['values']['options_source'];
+  }
+  else {
+    $form_state['values']['extra']['options_source'] = '';
+  }
 }
 
 /**
diff --git a/modules/webform/form_builder_webform.components.inc b/modules/webform/form_builder_webform.components.inc
index 9d308de..0cbc593 100644
--- a/modules/webform/form_builder_webform.components.inc
+++ b/modules/webform/form_builder_webform.components.inc
@@ -703,6 +703,7 @@ function _form_builder_webform_form_builder_types_select() {
     'properties' => array(
       'default_value',
       'options',
+      'options_source',
       'multiple',
     ),
     'weight' => -5,
@@ -719,6 +720,7 @@ function _form_builder_webform_form_builder_types_select() {
     'properties' => array(
       'default_value',
       'options',
+      'options_source',
       'multiple',
     ),
     'weight' => -6,
@@ -734,6 +736,7 @@ function _form_builder_webform_form_builder_types_select() {
     'properties' => array(
       'default_value',
       'options',
+      'options_source',
     ),
     'weight' => -7,
   );
@@ -777,6 +780,11 @@ function _form_builder_webform_form_builder_properties_select() {
       'submit' => array('form_builder_property_options_form_submit'),
       'storage_parents' => array('extra', 'items'),
     ),
+    // Support for predefined option lists.
+    'options_source' => array(
+      'form' => 'form_builder_webform_property_select_options_source_form',
+      'storage_parents' => array('extra', 'options_source'),
+    ),
   );
 }
 
@@ -800,6 +808,14 @@ function form_builder_webform_property_select_options_form(&$form_state, $form_t
 }
 
 /**
+ * Configuration form for the "options source" property.
+ */
+function form_builder_webform_property_select_options_source_form(&$form_state, $form_type, $element) {
+  $form = form_builder_property_options_source_form($form_state, $form_type, $element, 'options_source');
+  return $form;
+}
+
+/**
  * @} End of "defgroup form-builder-webform-select-callbacks"
  */
 
