diff --git a/app/code/Magento/Checkout/Block/Checkout/LayoutProcessor.php b/app/code/Magento/Checkout/Block/Checkout/LayoutProcessor.php
index 02e1f84c72b6d037897de53f1caa1441165f41af..688fd6e2ef48f99374570f391979522fc69d97dd 100644
--- a/app/code/Magento/Checkout/Block/Checkout/LayoutProcessor.php
+++ b/app/code/Magento/Checkout/Block/Checkout/LayoutProcessor.php
@@ -48,7 +48,7 @@ class LayoutProcessor implements \Magento\Checkout\Block\Checkout\LayoutProcesso
         /** @var \Magento\Eav\Api\Data\AttributeInterface[] $attributes */
         $attributes = $this->attributeMetadataDataProvider->loadAttributesCollection(
             'customer_address',
-            'customer_register_address'
+            'customer_address_edit'
         );
 
         $elements = [];
diff --git a/app/code/Magento/Checkout/Controller/Onepage.php b/app/code/Magento/Checkout/Controller/Onepage.php
index 2257347e9150ba0993f4b04e12a59019744152c1..0830d37486b33d6e0173d44b35a2700329718b19 100644
--- a/app/code/Magento/Checkout/Controller/Onepage.php
+++ b/app/code/Magento/Checkout/Controller/Onepage.php
@@ -180,14 +180,14 @@ class Onepage extends Action
     {
         $quote = $this->getOnepage()->getQuote();
         if (!$quote->hasItems() || $quote->getHasError() || !$quote->validateMinimumAmount()) {
-            return false;
+            return true;
         }
         $action = $this->getRequest()->getActionName();
         if ($this->_objectManager->get('Magento\Checkout\Model\Session')->getCartWasUpdated(true)
             &&
             !in_array($action, ['index', 'progress'])
         ) {
-            return false;
+            return true;
         }
 
         return false;
diff --git a/app/code/Magento/Checkout/view/frontend/web/js/action/select-shipping-address.js b/app/code/Magento/Checkout/view/frontend/web/js/action/select-shipping-address.js
index c2b34cbd331d22bc56443b21eee9ce0484c3c1c7..a8d1e6d38be27d054ca80636f988009ff66e87fb 100644
--- a/app/code/Magento/Checkout/view/frontend/web/js/action/select-shipping-address.js
+++ b/app/code/Magento/Checkout/view/frontend/web/js/action/select-shipping-address.js
@@ -14,8 +14,8 @@ define(
         });
         return function(shippingAddress) {
             quote.shippingAddress(shippingAddress);
-            //set billing address same as shipping by default
-            if (shippingAddress.canUseForBilling()) {
+            //set billing address same as shipping by default if it is not empty
+            if (shippingAddress.countryId != undefined && shippingAddress.canUseForBilling()) {
                 quote.billingAddress(shippingAddress);
             }
         };