diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module
index d7a5e9a..f950676 100644
--- a/modules/taxonomy/taxonomy.module
+++ b/modules/taxonomy/taxonomy.module
@@ -832,7 +832,10 @@ function taxonomy_get_vocabularies() {
  *   An array of vocabulary ids, names, machine names, keyed by machine name.
  */
 function taxonomy_vocabulary_get_names() {
-  $names = db_query('SELECT name, machine_name, vid FROM {taxonomy_vocabulary}')->fetchAllAssoc('machine_name');
+	$names = &drupal_static(__FUNCTION__, array());
+	if (!isset($names)) {
+  	$names = db_query('SELECT name, machine_name, vid FROM {taxonomy_vocabulary}')->fetchAllAssoc('machine_name');
+	}
   return $names;
 }
 
