diff --git a/uc_cart/tests/uc_cart.test b/uc_cart/tests/uc_cart.test
index 05944c9..d4bcb54 100644
--- a/uc_cart/tests/uc_cart.test
+++ b/uc_cart/tests/uc_cart.test
@@ -49,6 +49,8 @@ class UbercartCartCheckoutTestCase extends UbercartTestHelper {
     $order->line_items = uc_order_load_line_items($order, TRUE);
     uc_order_save($order);
 
+    $order = uc_order_load($order->order_id);
+
     return $order;
   }
 
diff --git a/uc_cart/uc_cart_checkout_pane.inc b/uc_cart/uc_cart_checkout_pane.inc
index 81a863d..544beee 100644
--- a/uc_cart/uc_cart_checkout_pane.inc
+++ b/uc_cart/uc_cart_checkout_pane.inc
@@ -556,7 +556,7 @@ function theme_uc_checkout_pane_cart_review($variables) {
     $desc = check_plain($item->title) . uc_product_get_description($item);
 
     $output .= '<tr valign="top"><td>' . $item->qty . '&times;</td><td width="100%">' . $desc
-              . '</td><td nowrap="nowrap">' . theme('uc_price', array('price' => $item->price * $item->qty)) . '</td></tr>';
+              . '</td><td nowrap="nowrap">' . theme('uc_price', array('price' => $item->display_price * $item->qty)) . '</td></tr>';
   }
   $output .= '</table>';
 
diff --git a/uc_order/uc_order.module b/uc_order/uc_order.module
index d3c7c29..0b5e1bf 100644
--- a/uc_order/uc_order.module
+++ b/uc_order/uc_order.module
@@ -1423,6 +1423,8 @@ class UcOrderController extends DrupalDefaultEntityController {
       $result = db_query("SELECT * FROM {uc_order_products} WHERE order_id = :id ORDER BY order_product_id", array(':id' => $order->order_id));
       $order->products = array();
       foreach ($result as $product) {
+        $product->display_price = $product->price;
+        $product->display_price_suffix = '';
         $product->data = unserialize($product->data);
         $product->order_uid = $order->uid;
         $order->products[] = $product;
@@ -1940,9 +1942,9 @@ function template_preprocess_uc_order(&$variables) {
 
   $variables['products'] = $order->products;
   foreach ($variables['products'] as &$product) {
-    $product->total_price = uc_currency_format($product->price * $product->qty);
+    $product->total_price = uc_currency_format($product->display_price * $product->qty);
     if ($product->qty > 1) {
-      $product->individual_price = t('(!price each)', array('!price' => uc_currency_format($product->price)));
+      $product->individual_price = t('(!price each)', array('!price' => uc_currency_format($product->display_price)));
     }
     else {
       $product->individual_price = '';
diff --git a/uc_order/uc_order.order_pane.inc b/uc_order/uc_order.order_pane.inc
index 7612880..24f6c7e 100644
--- a/uc_order/uc_order.order_pane.inc
+++ b/uc_order/uc_order.order_pane.inc
@@ -1144,12 +1144,12 @@ function uc_op_products_view_table($order) {
 
       $data['price'] = array(
         '#theme' => 'uc_price',
-        '#price' => $product->price,
+        '#price' => $product->display_price,
         '#cell_attributes' => array('align' => 'right'),
       );
       $data['total'] = array(
         '#theme' => 'uc_price',
-        '#price' => $product->price * $product->qty,
+        '#price' => $product->display_price * $product->qty,
         '#cell_attributes' => array('align' => 'right'),
       );
       $data['#attributes'] = array('valign' => 'top');
@@ -1248,12 +1248,12 @@ function uc_op_products_customer_table($order) {
 
       $data['price'] = array(
         '#theme' => 'uc_price',
-        '#price' => $product->price,
+        '#price' => $product->display_price,
         '#cell_attributes' => array('align' => 'right'),
       );
       $data['total'] = array(
         '#theme' => 'uc_price',
-        '#price' => $product->price * $product->qty,
+        '#price' => $product->display_price * $product->qty,
         '#cell_attributes' => array('align' => 'right'),
       );
       $data['#attributes'] = array('valign' => 'top');
diff --git a/uc_taxes/uc_taxes.module b/uc_taxes/uc_taxes.module
index 7ebabbd..1f2e498 100644
--- a/uc_taxes/uc_taxes.module
+++ b/uc_taxes/uc_taxes.module
@@ -196,6 +196,24 @@ function uc_taxes_uc_line_item() {
  */
 function uc_taxes_uc_order($op, $order, $arg2) {
   switch ($op) {
+    case 'load':
+      if (!empty($order->products)) {
+        $nids = array();
+        foreach ($order->products as $product) {
+          $nids[] = $product->nid;
+        }
+
+        $nodes = node_load_multiple($nids);
+
+        foreach ($order->products as &$product) {
+          list($amount, $suffixes) = uc_taxes_get_included_tax($nodes[$product->nid], $product->price);
+          $product->display_price += $amount;
+          if (!empty($suffixes)) {
+            $product->display_price_suffix .= implode(' ', $suffixes);
+          }
+        }
+      }
+      break;
     case 'save':
       $changes = array();
       $callback = _uc_line_item_data('tax', 'callback');
