diff --git a/uc_cart/uc_cart.module b/uc_cart/uc_cart.module
index a13fc88..5ba674d 100644
--- a/uc_cart/uc_cart.module
+++ b/uc_cart/uc_cart.module
@@ -669,21 +669,12 @@ function theme_uc_cart_block_items($items) {
     $output = '<table class="cart-block-items"><tbody>';
     $row_class = 'odd';
 
-    $context = array(
-      'revision' => 'themed',
-      'type' => 'price',
-    );
-
     // Loop through each item.
     foreach ($items as $item) {
-      $context['subject'] = array(
-        'cart_item' => $item,
-        'node' => node_load($item['nid']),
-      );
       // Add the basic row with quantity, title, and price.
       $output .= '<tr class="'. $row_class .'"><td class="cart-block-item-qty">'. $item['qty'] .'</td>'
                 .'<td class="cart-block-item-title">'. $item['title'] .'</td>'
-                .'<td class="cart-block-item-price">'. uc_price($item['price'], $context) .'</td></tr>';
+                .'<td class="cart-block-item-price">'. uc_price($item['price']) .'</td></tr>';
 
       // Add a row of description if necessary.
       if ($item['desc']) {
@@ -718,15 +709,11 @@ function theme_uc_cart_block_items($items) {
  * @ingroup themeable
  */
 function theme_uc_cart_block_summary($item_count, $item_text, $total, $summary_links) {
-  $context = array(
-    'revision' => 'themed-original',
-    'type' => 'amount',
-  );
   // Build the basic table with the number of items in the cart and total.
   $output = '<table class="cart-block-summary"><tbody><tr>'
            .'<td class="cart-block-summary-items">'. $item_text .'</td>'
            .'<td class="cart-block-summary-total"><label>'. t('Total:')
-           .'</label> '. uc_price($total, $context) .'</td></tr>';
+           .'</label> '. uc_price($total) .'</td></tr>';
 
   // If there are products in the cart...
   if ($item_count > 0) {
@@ -910,10 +897,6 @@ function uc_cart_view_form($form_state, $items = NULL) {
     '#tree' => TRUE,
   );
 
-  $context = array(
-    'revision' => 'themed-original',
-    'type' => 'amount',
-  );
   $i = 0;
   foreach ($items as $item) {
     $display_item = module_invoke($item->module, 'cart_display', $item);
@@ -948,7 +931,7 @@ function uc_cart_view_form($form_state, $items = NULL) {
       }
 
       $form['items'][$i]['total'] = array(
-        '#value' => uc_price($display_item['#total'], $context),
+        '#value' => uc_price($display_item['#total']),
         '#theme' => 'uc_cart_view_price',
       );
       $i++;
@@ -1122,13 +1105,9 @@ function uc_cart_view_table($table) {
     $table[$i]['#attributes'] = array('valign' => 'top');
   }
 
-  $context = array(
-    'revision' => 'themed-original',
-    'type' => 'amount',
-  );
   $table[] = array(
     'total' => array(
-      '#value' => '<strong>'. t('Subtotal:') .'</strong> '. uc_price($subtotal, $context),
+      '#value' => '<strong>'. t('Subtotal:') .'</strong> '. uc_price($subtotal),
       '#cell_attributes' => array(
         'colspan' => 'full',
         'align' => 'right',
diff --git a/uc_cart/uc_cart_checkout_pane.inc b/uc_cart/uc_cart_checkout_pane.inc
index 4d16e66..7684b11 100644
--- a/uc_cart/uc_cart_checkout_pane.inc
+++ b/uc_cart/uc_cart_checkout_pane.inc
@@ -638,25 +638,17 @@ function theme_cart_review_table($show_subtotal = TRUE) {
 
     $description = check_plain($item->title) . uc_product_get_description($item);
 
-    // Remove node from context to prevent the price from being altered.
-    $context['revision'] = 'themed-original';
-    $context['type'] = 'amount';
-    unset($context['subject']);
     $rows[] = array(
       array('data' => t('@qty&times;', array('@qty' => $item->qty)), 'class' => 'qty'),
       array('data' => $description, 'class' => 'products'),
-      array('data' => uc_price($total, $context), 'class' => 'price'),
+      array('data' => uc_price($total), 'class' => 'price'),
     );
   }
 
   // Add the subtotal as the final row.
   if ($show_subtotal) {
-    $context = array(
-      'revision' => 'themed-original',
-      'type' => 'amount',
-    );
     $rows[] = array(
-      'data' => array(array('data' => '<span id="subtotal-title">' . t('Subtotal:') . '</span> ' . uc_price($subtotal, $context), 'colspan' => 3, 'class' => 'subtotal')),
+      'data' => array(array('data' => '<span id="subtotal-title">' . t('Subtotal:') . '</span> ' . uc_price($subtotal), 'colspan' => 3, 'class' => 'subtotal')),
       'class' => 'subtotal',
     );
   }
diff --git a/uc_order/uc_order.admin.inc b/uc_order/uc_order.admin.inc
index 964e531..9f2f900 100644
--- a/uc_order/uc_order.admin.inc
+++ b/uc_order/uc_order.admin.inc
@@ -1300,20 +1300,17 @@ function uc_order_edit_products($order) {
         }
       }
 
-      $price_info = array(
-        'price' => $product->price,
-        'qty' => 1,
-      );
       $context = array(
         'revision' => 'original',
-        'type' => 'order_product',
+        'type' => 'cart_item',
         'subject' => array(
           'order' => $order,
           'product' => $product,
           'node' => clone $product,
         ),
       );
-      $product->price = uc_price($price_info, $context);
+      $product->cost = uc_price($product->cost, $context + array('field' => 'cost'));
+      $product->price = uc_price($product->price, $context);
 
       drupal_alter('order_product', $product, $order);
       uc_order_product_save($order->order_id, $product);
diff --git a/uc_order/uc_order.module b/uc_order/uc_order.module
index 8f9c9db..a0d1846 100644
--- a/uc_order/uc_order.module
+++ b/uc_order/uc_order.module
@@ -449,8 +449,7 @@ function uc_order_token_values($type, $object = NULL) {
       }
       $values['order-subtotal'] = $subtotal;
       $context = array(
-        'revision' => 'formatted-original',
-        'type' => 'order_total',
+        'revision' => 'formatted',
         'subject' => array(
           'order' => $order,
         ),
@@ -1475,24 +1474,8 @@ function uc_order_get_total($order, $products_only = FALSE) {
     return $total;
   }
 
-  if (isset($order->products) && is_array($order->products)) {
-    $context = array(
-      'revision' => 'altered',
-      'type' => 'order_product',
-    );
-
-    foreach ($order->products as $product) {
-      $price_info = array(
-        'price' => $product->price,
-        'qty' => ($product->qty) ? $product->qty : 1,
-      );
-      $context['subject'] = array(
-        'order' => $order,
-        'product' => $product,
-        'node' => node_load($product->nid),
-      );
-      $total += uc_price($price_info, $context);
-    }
+  foreach ($order->products as $product) {
+    $total += $product->price * $product->qty;
   }
 
   if ($products_only) {
diff --git a/uc_order/uc_order.order_pane.inc b/uc_order/uc_order.order_pane.inc
index 0798122..941af3f 100644
--- a/uc_order/uc_order.order_pane.inc
+++ b/uc_order/uc_order.order_pane.inc
@@ -763,7 +763,7 @@ function op_products_view_table($order) {
 
   $context = array(
     'revision' => 'themed',
-    'type' => 'order_product',
+    'type' => 'amount',
     'subject' => array(
       'order' => $order,
     ),
@@ -784,28 +784,19 @@ function op_products_view_table($order) {
         '#cell_attributes' => array('align' => 'center', 'nowrap' => 'nowrap'),
       );
 
-      $context['subject']['product'] = $product;
-      $context['subject']['node'] = node_load($product->nid);
       if (user_access('administer products')) {
-        $context['field'] = 'cost';
-
         $data['cost'] = array(
-          '#value' => uc_price($product->cost, $context),
+          '#value' => uc_price($product->cost),
           '#cell_attributes' => array('align' => 'right', 'nowrap' => 'nowrap'),
         );
       }
 
-      $context['field'] = 'price';
-      $price_info = array(
-        'price' => $product->price,
-        'qty' => $product->qty,
-      );
       $data['price'] = array(
-        '#value' => uc_price($product->price, $context),
+        '#value' => uc_price($product->price),
         '#cell_attributes' => array('align' => 'right', 'nowrap' => 'nowrap'),
       );
       $data['total'] = array(
-        '#value' => uc_price($price_info, $context),
+        '#value' => uc_price($product->price * $product->qty, $context),
         '#cell_attributes' => array('align' => 'right', 'nowrap' => 'nowrap'),
       );
       $data['#attributes'] = array('valign' => 'top');
@@ -879,7 +870,7 @@ function op_products_customer_table($order) {
 
   $context = array(
     'revision' => 'themed',
-    'type' => 'order_product',
+    'type' => 'amount',
     'subject' => array(
       'order' => $order,
     ),
@@ -900,27 +891,19 @@ function op_products_customer_table($order) {
         '#cell_attributes' => array('align' => 'center', 'nowrap' => 'nowrap'),
       );
 
-      $context['subject']['product'] = $product;
-      $context['subject']['node'] = node_load($product->nid);
       if (user_access('administer products')) {
-        $context['field'] = 'cost';
         $data['cost'] = array(
           '#value' => uc_price($product->cost, $context),
           '#cell_attributes' => array('align' => 'right', 'nowrap' => 'nowrap'),
         );
       }
 
-      $context['field'] = 'price';
-      $price_info = array(
-        'price' => $product->price,
-        'qty' => $product->qty,
-      );
       $data['price'] = array(
         '#value' => uc_price($product->price, $context),
         '#cell_attributes' => array('align' => 'right', 'nowrap' => 'nowrap'),
       );
       $data['total'] = array(
-        '#value' => uc_price($price_info, $context),
+        '#value' => uc_price($product->price * $product->qty, $context),
         '#cell_attributes' => array('align' => 'right', 'nowrap' => 'nowrap'),
       );
       $data['#attributes'] = array('valign' => 'top');
