I have managed to solve my problem. It was a classic php4/php5 issue. In PHP4 everything including objects are passed as copy whereas in PHP5 objects are passed by reference. In this case the original array needed to be changed which was not happening in PHP4. Here's the patch:
=== modified file 'shipping/uc_quote/uc_quote.module'
--- shipping/uc_quote/uc_quote.module 2008-02-21 18:16:47 +0000
+++ shipping/uc_quote/uc_quote.module 2008-03-07 00:48:18 +0000
@@ -1061,11 +1061,11 @@
}
}
$products = array();
- foreach ($arg1->products as $product){
+ foreach ($arg1->products as $key0 => $product){
$node = (array)node_load($product->nid);
- foreach ($node as $key => $value){
- if (!isset($product->$key)){
- $product->$key = $value;
+ foreach ($node as $key1 => $value){
+ if (!isset($product->$key1)){
+ $arg1->products[$key0]->$key1 = $value;
}
}
$products[] = $product;


Joined: 03/03/2008