=== modified file 'uc_attribute/uc_attribute.module'
--- uc_attribute/uc_attribute.module	2009-08-14 19:10:32 +0000
+++ uc_attribute/uc_attribute.module	2009-08-20 19:59:38 +0000
@@ -614,31 +614,33 @@
   $index = 0;
   if (!empty($data['attributes']) && is_array($data['attributes'])) {
     foreach ($data['attributes'] as $aid => $selected) {
-      $attribute = $node->attributes[$aid];
-      // Only discrete options can affect the price of an item.
-      if ($attribute->display && count($attribute->options)) {
-        // There may be many selected options, or just one.
-        foreach ((array)$selected as $oid) {
-          if ($oid > 0) {
-            $options[$index] = (array)$attribute->options[$oid];
-            $options[$index]['attribute'] = _uc_attribute_get_name($attribute);
-            $index++;
+      if (isset($node->attributes[$aid])) {
+        $attribute = $node->attributes[$aid];
+        // Only discrete options can affect the price of an item.
+        if ($attribute->display && count($attribute->options)) {
+          // There may be many selected options, or just one.
+          foreach ((array)$selected as $oid) {
+            if ($oid > 0) {
+              $options[$index] = (array)$attribute->options[$oid];
+              $options[$index]['attribute'] = _uc_attribute_get_name($attribute);
+              $index++;
+            }
           }
         }
-      }
-      else {
-        // Handle textfield attributes.
-        $options[$index] = array(
-          'attribute' => _uc_attribute_get_name($attribute),
-          'aid' => $aid,
-          'oid' => 0,
-          'name' => $selected,
-          'cost' => 0,
-          'price' => 0,
-          'weight' => 0,
-        );
-      }
-      $index++;
+        else {
+          // Handle textfield attributes.
+          $options[$index] = array(
+            'attribute' => _uc_attribute_get_name($attribute),
+            'aid' => $aid,
+            'oid' => 0,
+            'name' => $selected,
+            'cost' => 0,
+            'price' => 0,
+            'weight' => 0,
+          );
+        }
+        $index++;
+      }
     }
   }
   else {

