--- a/i18n_taxonomy/i18n_taxonomy.install	2012-01-19 15:29:57.001901465 +0100
+++ i18n_corrected/i18n_taxonomy/i18n_taxonomy.install	2012-01-19 15:24:34.831428939 +0100
@@ -61,7 +61,7 @@
 function i18n_taxonomy_disable() {
   foreach (field_info_fields() as $fieldname => $field) {
     if ($field['type'] == 'taxonomy_term_reference') {
-      unset($field['settings']['options_list_callback']);
+      $field['settings']['options_list_callback'] = '';
       field_update_field($field);
     }
   }
@@ -115,11 +115,15 @@
  * Switch back to real taxonomy fields and override option_list_callback.
  */
 function i18n_taxonomy_update_7002(&$sandbox) {
-  foreach (field_info_fields() as $fieldname => $field) {
-    if ($field['type'] == 'taxonomy_term_reference') {
-      $field['module'] = 'taxonomy';
-      $field['settings']['options_list_callback'] = 'i18n_taxonomy_allowed_values';
-      field_update_field($field);
+  // Update fields only if i18n_taxonomy is enabled.
+  if(function_exists('i18n_taxonomy_allowed_values')) {
+
+    foreach (field_info_fields() as $fieldname => $field) {
+      if ($field['type'] == 'taxonomy_term_reference') {
+        $field['module'] = 'taxonomy';
+        $field['settings']['options_list_callback'] = 'i18n_taxonomy_allowed_values';
+        field_update_field($field);
+      }
     }
   }
 }
