diff --git a/modules/ec/commerce_paypal_ec.module b/modules/ec/commerce_paypal_ec.module
index 5c7727c..098e003 100644
--- a/modules/ec/commerce_paypal_ec.module
+++ b/modules/ec/commerce_paypal_ec.module
@@ -1016,6 +1016,7 @@ function commerce_paypal_ec_itemize_order($order, $currency_code) {
   $i = 0;
 
   $shippingamt = 0;
+  $shipping_tax = 0;
 
   foreach ($order_wrapper->commerce_line_items as $delta => $line_item_wrapper) {
     // If the current line item is a shipping line item, track its amount value
@@ -1023,11 +1024,13 @@ function commerce_paypal_ec_itemize_order($order, $currency_code) {
     if (module_exists('commerce_shipping') && $line_item_wrapper->type->value() == 'shipping') {
       // Extract the unit price and the amount of taxes it contains.
       $shipping_price = $line_item_wrapper->commerce_unit_price->value();
+
+      // Get the total amout of shipping tax included in this line item.
       $shipping_tax = commerce_tax_total_amount($shipping_price['data']['components'], FALSE, $currency_code);
 
       // Track the total costs of all shipping line items on an order, though
       // typically this should be limited to one shipping line item per order.
-      $shippingamt += $shipping_price['amount'] - $shipping_tax;
+      $shippingamt += $shipping_price['amount'];
     }
     else {
       // Extract the line item unit price value array.
@@ -1069,8 +1072,8 @@ function commerce_paypal_ec_itemize_order($order, $currency_code) {
   // Add payment details line items.
   $nvp += array(
     'PAYMENTREQUEST_0_ITEMAMT' => commerce_paypal_price_amount($amt - $taxamt - $shippingamt, $currency_code),
-    'PAYMENTREQUEST_0_TAXAMT' => commerce_paypal_price_amount($taxamt, $currency_code),
-    'PAYMENTREQUEST_0_SHIPPINGAMT' => commerce_paypal_price_amount($shippingamt, $currency_code),
+    'PAYMENTREQUEST_0_TAXAMT' => commerce_paypal_price_amount($taxamt - $shipping_tax, $currency_code),
+    'PAYMENTREQUEST_0_SHIPPINGAMT' => commerce_paypal_price_amount($shippingamt + $shipping_tax, $currency_code),
   );
 
   return $nvp;
