diff --git a/core/modules/taxonomy/taxonomy.module b/core/modules/taxonomy/taxonomy.module
index 242a4c7eb16bce215eb34ad07ce35a7001da5eec..8ff550c184f188c98a392b4906aa427e5d3e9e39 100644
--- a/core/modules/taxonomy/taxonomy.module
+++ b/core/modules/taxonomy/taxonomy.module
@@ -1335,7 +1335,7 @@ function taxonomy_field_widget_info_alter(&$info) {
  * Implements hook_options_list().
  */
 function taxonomy_options_list($field, $instance) {
-  $function = !empty($field['settings']['options_list_callback']) ? $field['settings']['options_list_callback'] : 'taxonomy_allowed_values';
+  $function = (!empty($field['settings']['options_list_callback']) && function_exists($field['settings']['options_list_callback'])) ? $field['settings']['options_list_callback'] : 'taxonomy_allowed_values';
   return $function($field);
 }
 
