Hi, thanks for the update. Unfortunately 2.2.18 still breaks my setup. Base currency is DZD; USD rate = 0.00384615 with 2 decimals (normal for USD). refresh_currency_unit_check() converts 1 DZD → 0.0038 → rounds to 0.00 with 2 decimals, so USD is flagged and guard_currency_unit() forces every USD visitor back to DZD with the notice “Decimals of USD must be at least 3”. Setting 3 decimals isn’t acceptable (prices show as $9.615). One unit of a low-value base currency is legitimately below one cent; the check should test a realistic amount (e.g. the cheapest product price, or 100/1000 base units), or compare against the currency’s smallest unit rather than converting 1. Could you adjust the check or add a filter/option to disable it? I’m staying on 2.2.16 until then. Thanks!