=== modified file 'docs/hooks.php'
--- docs/hooks.php	2009-02-19 20:44:23 +0000
+++ docs/hooks.php	2009-02-27 21:40:04 +0000
@@ -1225,5 +1225,27 @@
 }
 
 /**
+ * Notify core of any SKUs your module adds to a gven node.
+ *
+ * NOTE: DO NOT map the array keys, as the possibility for numeric SKUs exists, and
+ * this will conflict with the behavior of module_invoke_all(), specifically 
+ * array_merge_recursive(). 
+ */
+function uc_attribute_uc_product_models($node) {
+  $models = array();
+
+  // Get all the SKUs for all the attributes on this node.
+  $adjustments = db_query("SELECT model FROM {uc_product_adjustments} WHERE nid = %d", $node->nid);
+  while ($adjustment = db_fetch_object($adjustments)) {
+    if (!in_array($adjustment->model, $models)) {
+      $models[] = $adjustment->model;
+    }
+  }
+
+  return $models;
+}
+
+
+/**
  * @} End of "addtogroup hooks".
  */

=== modified file 'uc_attribute/uc_attribute.module'
--- uc_attribute/uc_attribute.module	2009-02-20 18:39:24 +0000
+++ uc_attribute/uc_attribute.module	2009-02-27 21:27:41 +0000
@@ -330,11 +330,11 @@
 function uc_attribute_uc_product_models($node) {
   $models = array();
 
-  // Get all the SKUs for all the attriibutes.
+  // Get all the SKUs for all the attributes on this node.
   $adjustments = db_query("SELECT model FROM {uc_product_adjustments} WHERE nid = %d", $node->nid);
   while ($adjustment = db_fetch_object($adjustments)) {
     if (!in_array($adjustment->model, $models)) {
-      $models[$adjustment->model] = $adjustment->model;
+      $models[] = $adjustment->model;
     }
   }
 

=== modified file 'uc_product/uc_product.module'
--- uc_product/uc_product.module	2009-02-26 18:54:53 +0000
+++ uc_product/uc_product.module	2009-02-27 21:39:44 +0000
@@ -1522,10 +1522,18 @@
  * models on this node.
  */
 function uc_product_get_models($node) {
-  $models = array_merge(array(NULL => t('Any'), $node->model => $node->model), module_invoke_all('uc_product_models', $node));
-
+  // Get any modules' SKUs on this node.
+  $models = module_invoke_all('uc_product_models', $node);
+  // Add the base SKU of the node.
+  $models[$node->model] = $node->model;
+  
+  // Now we map the SKUs to the keys, for form handling, etc.
+  $models = drupal_map_assoc($models);
+  // Sort the SKUs
   asort($models);
-  return $models;
+  
+  // And finally, we prepend 'Any' so it's the first option.
+  return array(NULL => 'Any') + $models;
 }
 
 /**

