diff --git a/releases/plg_opentools_vm_rules_shipping_advanced_v5.3.zip b/releases/plg_opentools_vm_rules_shipping_advanced_v5.3.zip
new file mode 100644
index 0000000000000000000000000000000000000000..761f610f5f6aaa1980635d09be9005ebfe53ade2
Binary files /dev/null and b/releases/plg_opentools_vm_rules_shipping_advanced_v5.3.zip differ
diff --git a/releases/plg_opentools_vm_rules_shipping_v5.3.zip b/releases/plg_opentools_vm_rules_shipping_v5.3.zip
new file mode 100644
index 0000000000000000000000000000000000000000..9235b24d75cbc561cebf8552afa19e9ca45b0fd8
Binary files /dev/null and b/releases/plg_opentools_vm_rules_shipping_v5.3.zip differ
diff --git a/rules_shipping_base.php b/rules_shipping_base.php
index c16794c4deb9fa8afa69ba48fb715053ee69af64..6020104d14e0ecd8b80af6c671b830906dad70aa 100644
--- a/rules_shipping_base.php
+++ b/rules_shipping_base.php
@@ -165,6 +165,9 @@ class plgVmShipmentRules_Shipping_Base extends vmPSPlugin {
 		if (!$this->selectedThisElement ($method->shipment_element)) {
 			return FALSE;
 		}
+		// We need to call getCosts, because in J3 $method->rule_name and $method->cost as set in getCosts is no longer preserved.
+		// Instead, we simply call getCosts again, which as a side-effect sets all those members of $method.
+		$costs = $this->getCosts($cart,$method,$cart->cartPrices);
 		$values['virtuemart_order_id'] = $order['details']['BT']->virtuemart_order_id;
 		$values['order_number'] = $order['details']['BT']->order_number;
 		$values['virtuemart_shipmentmethod_id'] = $order['details']['BT']->virtuemart_shipmentmethod_id;