=== modified file 'uc_product/views/uc_product.views.inc'
--- uc_product/views/uc_product.views.inc	2009-09-29 21:09:38 +0000
+++ uc_product/views/uc_product.views.inc	2009-10-20 17:41:02 +0000
@@ -48,6 +48,12 @@
       'handler' => 'uc_product_handler_field_price',
       'click sortable' => TRUE,
       'float' => TRUE,
+      'additional fields' => array(
+        'nid' => array(
+          'table' => 'node',
+          'field' => 'nid',
+        ),
+      ),
     ),
     'sort' => array(
       'handler' => 'views_handler_sort',
@@ -64,6 +70,12 @@
       'handler' => 'uc_product_handler_field_price',
       'click sortable' => TRUE,
       'float' => TRUE,
+      'additional fields' => array(
+        'nid' => array(
+          'table' => 'node',
+          'field' => 'nid',
+        ),
+      ),
     ),
     'sort' => array(
       'handler' => 'views_handler_sort',
@@ -80,6 +92,12 @@
       'handler' => 'uc_product_handler_field_price',
       'click sortable' => TRUE,
       'float' => TRUE,
+      'additional fields' => array(
+        'nid' => array(
+          'table' => 'node',
+          'field' => 'nid',
+        ),
+      ),
     ),
     'sort' => array(
       'handler' => 'views_handler_sort',

=== modified file 'uc_product/views/uc_product_handler_field_price.inc'
--- uc_product/views/uc_product_handler_field_price.inc	2009-09-29 21:09:38 +0000
+++ uc_product/views/uc_product_handler_field_price.inc	2009-10-20 17:53:29 +0000
@@ -49,12 +49,18 @@
     }
   }
 
+  function query() {
+    $this->ensure_my_table();
+    $this->add_additional_fields();
+  }
+
   function render($values) {
     if ($this->options['format'] == 'numeric') {
       return parent::render($values);
     }
 
     if ($this->options['format'] == 'uc_price') {
+      $product = node_load($values->{$this->aliases['nid']});
       $context = array(
         'revision' => 'themed',
         'type' => 'product',
@@ -64,19 +70,12 @@
         ),
         'field' => $this->real_field,
         'subject' => array(
-          'node' => $values,
+          'node' => $product,
         ),
       );
       $options = array('label' => FALSE);
 
-      $table_alias_len = strlen($this->table_alias);
-      foreach ($values as $key => $value) {
-        if (substr($key, 0, $table_alias_len) == $this->table_alias) {
-          $values->{substr($key, $table_alias_len + 1)} = $value;
-        }
-      }
-
-      return uc_price($values->{$this->field_alias}, $context, $options);
+      return uc_price($product->{$this->real_field}, $context, $options);
     }
   }
 }

