diff -urp taxonomy_delegate_old/taxonomy_delegate.module taxonomy_delegate/taxonomy_delegate.module
--- taxonomy_delegate_old/taxonomy_delegate.module	2008-07-09 19:15:35.000000000 -0400
+++ taxonomy_delegate/taxonomy_delegate.module	2010-12-19 22:03:12.679126034 -0500
@@ -41,16 +41,13 @@ function taxonomy_delegate_menu() {
     'type' => MENU_LOCAL_TASK,
     );
 
-    // User admin callback.
-  $any = count(_taxonomy_delegate_my_vocabularies());
-  if ($any) {
-    $items['category_admin'] = array(
-      'title' => '@name',
-      'title arguments' => array('@name' => variable_get('taxonomy_delegate_menu', t('Administer My Categories'))),
-      'page callback' => 'taxonomy_delegate_mycategories',
-      'access arguments' => array('access content'),
-      );
-  }
+  // User admin callback.
+  $items['category_admin'] = array(
+    'title' => '@name',
+    'title arguments' => array('@name' => variable_get('taxonomy_delegate_menu', t('Administer My Categories'))),
+    'page callback' => 'taxonomy_delegate_mycategories',
+    'access callback' => '_taxonomy_delegate_access',
+    );
 
   // Admin settings.
   $items['admin/settings/taxonomy_delegate'] = array(
@@ -66,6 +63,14 @@ function taxonomy_delegate_menu() {
 }
 
 /**
+ * Menu access checking function.
+ */
+function _taxonomy_delegate_access() {
+  global $user;
+  return count(_taxonomy_delegate_my_vocabularies()) > 0;
+}
+
+/**
  *  Implementation of hook_init.
  *  Make sure the taxonomy admin functions are loaded for the user.
  */
@@ -419,10 +424,18 @@ function taxonomy_delegate_overview_term
 function _taxonomy_delegate_my_vocabularies() {
   global $user;
   $list = array();
+  $sql = 'SELECT DISTINCT(vid) FROM {taxonomy_delegate}';
+  
   foreach ($user->roles as $rid => $name) {
     $list[] = $rid;
   }
-  $result = db_query('SELECT DISTINCT(vid) FROM {taxonomy_delegate} WHERE rid IN ('. implode(', ', $list) .')');
+  
+  // Only limit the delegated vocabs returned if the user doesn't have admin taxonomy access
+  if (!user_access('administer taxonomy')) {
+    $sql .= ' WHERE rid IN ('. implode(', ', $list) .')';
+  }
+  
+  $result = db_query($sql);
   $vocabs = array();
   
   while ($vocab = db_fetch_array($result)) {
