diff --git a/components/select.inc b/components/select.inc
index 5f32b72..88627eb 100644
--- a/components/select.inc
+++ b/components/select.inc
@@ -794,6 +794,21 @@ function _webform_select_options_info() {
       }
       $info = array_merge($info, $additions);
     }
+
+    // Support for the list_predefined_options module.
+    if (module_exists('list_predefined_options')) {
+      $predefined_options_info = list_predefined_options_get_list_option_info();
+
+      // Reconfigure the predefined options info to match what webform expects.
+      foreach ($predefined_options_info as $predefined_option => $predefined_option_info) {
+        $predefined_options_info[$predefined_option]['title'] = $predefined_option_info['label'];
+        unset($predefined_options_info[$predefined_option]['label']);
+        $predefined_options_info[$predefined_option]['options callback'] = $predefined_option_info['callback'];
+        unset($predefined_options_info[$predefined_option]['callback']);
+      }
+
+      $info = array_merge($info, $predefined_options_info);
+    }
     drupal_alter('webform_select_options_info', $info);
   }
   return $info;
