--- uc_donation.module	2009-06-08 11:19:42.000000000 -0400
+++ uc_donation_table_patch.module 2009-11-19 13:11:19.000000000 -0500
@@ -109,17 +109,26 @@ function uc_donation_form_alter(&$form, 
     }
   }
   if ($form_id == 'uc_cart_view_form') {
-    $form['items']['#columns']['donate_amount'] = array('cell' => t('Amount'), 'weight' => 3);
-    $form['items']['#columns']['qty']['weight']++;
-    $form['items']['#columns']['total']['weight']++;
-    $form['#validate'][] = 'uc_donation_cart_view_validate';
-
-    // Add spacer to regular products for amount column
+    // Determine if a donation product has been added to the cart
+    $donation_in_cart = FALSE;
     foreach (element_children($form['items']) as $item) {
-      if (isset($form['items'][$item]['module']) && $form['items'][$item]['module']['#value'] != 'uc_donation') {
-        $form['items'][$item]['desc']['#cell_attributes']['colspan'] = '2';
+      if (isset($form['items'][$item]['module']) && $form['items'][$item]['module']['#value'] == 'uc_donation') {
+        $donation_in_cart = TRUE;
+      }
+    }
+    // If there is a donation product in the cart, alter the table
+    if ($donation_in_cart) {
+      $form['items']['#columns']['donate_amount'] = array('cell' => t('Amount'), 'weight' => 3);
+      $form['items']['#columns']['qty']['weight']++;
+      $form['items']['#columns']['total']['weight']++;
+      // Add spacer to regular products for amount column
+      foreach (element_children($form['items']) as $item) {
+        if (isset($form['items'][$item]['module']) && $form['items'][$item]['module']['#value'] != 'uc_donation') {
+          $form['items'][$item]['donate_amount'] = array();
+        }
       }
     }
+    $form['#validate'][] = 'uc_donation_cart_view_validate';
   }
   if ($form_id == 'node_type_form') {
     if ($form['#node_type']->type == 'donation') {
