--- generic_callbacks.inc.20100826	2010-08-26 12:26:30.000000000 +1000
+++ generic_callbacks.inc	2010-08-26 12:03:43.000000000 +1000
@@ -229,7 +229,29 @@ function fieldtool_field_generic_value_i
     }
     
     $value = implode(', ', $value);
-  } 
+  }
+  
+  // Handle CCK allowed values
+  if (array_key_exists('cck field type', $field_info)) {
+    // Get 'root' CCK field name
+    $tmp = explode('-', $field_info['name']);
+    $cck_name = $tmp[0];
+    $cck_field = content_fields($cck_name);
+    $allowed_values = content_allowed_values($cck_field);
+    if (count($allowed_values)) {
+      if (array_key_exists($value, $allowed_values)) {  // If $value is one of the allowed value keys.
+        break;
+      }
+      else {
+        foreach ($allowed_values as $key => $allowed_value) {
+          if ($value == $allowed_value) {
+            $value = $key;
+            break;
+          }
+        }
+      }
+    }
+  }
   
   return $value;
 }
