diff --git a/vendor/magento/module-checkout/view/frontend/web/js/model/checkout-data-resolver.js b/vendor/magento/module-checkout/view/frontend/web/js/model/checkout-data-resolver.js
index 66539ad..b96a01c 100644
--- a/vendor/magento/module-checkout/view/frontend/web/js/model/checkout-data-resolver.js
+++ b/vendor/magento/module-checkout/view/frontend/web/js/model/checkout-data-resolver.js
@@ -43,13 +43,6 @@ define([
         resolveEstimationAddress: function () {
             var address;

-            if (checkoutData.getShippingAddressFromData()) {
-                address = addressConverter.formAddressDataToQuoteAddress(checkoutData.getShippingAddressFromData());
-                selectShippingAddress(address);
-            } else {
-                this.resolveShippingAddress();
-            }
-
             if (quote.isVirtual()) {
                 if (checkoutData.getBillingAddressFromData()) {
                     address = addressConverter.formAddressDataToQuoteAddress(
@@ -59,6 +52,11 @@ define([
                 } else {
                     this.resolveBillingAddress();
                 }
+            } else if (checkoutData.getShippingAddressFromData()) {
+                address = addressConverter.formAddressDataToQuoteAddress(checkoutData.getShippingAddressFromData());
+                selectShippingAddress(address);
+            } else {
+                this.resolveShippingAddress();
             }
         },

diff --git a/vendor/magento/module-tax/Model/Sales/Total/Quote/CommonTaxCollector.php b/vendor/magento/module-tax/Model/Sales/Total/Quote/CommonTaxCollector.php
index 877aec3..7a0d10a 100644
--- a/vendor/magento/module-tax/Model/Sales/Total/Quote/CommonTaxCollector.php
+++ b/vendor/magento/module-tax/Model/Sales/Total/Quote/CommonTaxCollector.php
@@ -6,6 +6,7 @@

 namespace Magento\Tax\Model\Sales\Total\Quote;

+use Magento\Customer\Api\AccountManagementInterface as CustomerAccountManagement;
 use Magento\Customer\Api\Data\AddressInterfaceFactory as CustomerAddressFactory;
 use Magento\Customer\Api\Data\AddressInterface as CustomerAddress;
 use Magento\Customer\Api\Data\RegionInterfaceFactory as CustomerAddressRegionFactory;
@@ -145,6 +146,11 @@ class CommonTaxCollector extends AbstractTotal
     private $quoteDetailsItemExtensionFactory;

     /**
+     * @var CustomerAccountManagement
+     */
+    private $customerAccountManagement;
+
+    /**
      * Class constructor
      *
      * @param \Magento\Tax\Model\Config $taxConfig
@@ -156,6 +162,8 @@ class CommonTaxCollector extends AbstractTotal
      * @param CustomerAddressRegionFactory $customerAddressRegionFactory
      * @param TaxHelper|null $taxHelper
      * @param QuoteDetailsItemExtensionInterfaceFactory|null $quoteDetailsItemExtensionInterfaceFactory
+     * @param CustomerAccountManagement|null $customerAccountManagement
+     * @SuppressWarnings(PHPMD.ExcessiveParameterList)
      */
     public function __construct(
         \Magento\Tax\Model\Config $taxConfig,
@@ -166,7 +174,8 @@ class CommonTaxCollector extends AbstractTotal
         CustomerAddressFactory $customerAddressFactory,
         CustomerAddressRegionFactory $customerAddressRegionFactory,
         TaxHelper $taxHelper = null,
-        QuoteDetailsItemExtensionInterfaceFactory $quoteDetailsItemExtensionInterfaceFactory = null
+        QuoteDetailsItemExtensionInterfaceFactory $quoteDetailsItemExtensionInterfaceFactory = null,
+        ?CustomerAccountManagement $customerAccountManagement = null
     ) {
         $this->taxCalculationService = $taxCalculationService;
         $this->quoteDetailsDataObjectFactory = $quoteDetailsDataObjectFactory;
@@ -178,6 +187,8 @@ class CommonTaxCollector extends AbstractTotal
         $this->taxHelper = $taxHelper ?: ObjectManager::getInstance()->get(TaxHelper::class);
         $this->quoteDetailsItemExtensionFactory = $quoteDetailsItemExtensionInterfaceFactory ?:
             ObjectManager::getInstance()->get(QuoteDetailsItemExtensionInterfaceFactory::class);
+        $this->customerAccountManagement = $customerAccountManagement ??
+            ObjectManager::getInstance()->get(CustomerAccountManagement::class);
     }

     /**
@@ -413,7 +424,24 @@ class CommonTaxCollector extends AbstractTotal
     public function populateAddressData(QuoteDetailsInterface $quoteDetails, QuoteAddress $address)
     {
         $quoteDetails->setBillingAddress($this->mapAddress($address->getQuote()->getBillingAddress()));
-        $quoteDetails->setShippingAddress($this->mapAddress($address));
+        if ($address->getAddressType() === QuoteAddress::ADDRESS_TYPE_BILLING
+            && !$address->getCountryId()
+            && $address->getQuote()->isVirtual()
+            && $address->getQuote()->getCustomerId()
+        ) {
+            $defaultBillingAddress = $this->customerAccountManagement->getDefaultBillingAddress(
+                $address->getQuote()->getCustomerId()
+            );
+            $addressCopy = $address;
+            if ($defaultBillingAddress) {
+                $addressCopy = clone $address;
+                $addressCopy->importCustomerAddressData($defaultBillingAddress);
+            }
+
+            $quoteDetails->setShippingAddress($this->mapAddress($addressCopy));
+        } else {
+            $quoteDetails->setShippingAddress($this->mapAddress($address));
+        }
         return $quoteDetails;
     }

