diff --git a/modules/customer/includes/commerce_customer.checkout_pane.inc b/modules/customer/includes/commerce_customer.checkout_pane.inc
index eebdcc0..52b5e61 100644
--- a/modules/customer/includes/commerce_customer.checkout_pane.inc
+++ b/modules/customer/includes/commerce_customer.checkout_pane.inc
@@ -46,18 +46,27 @@ function commerce_customer_profile_pane_settings_form($checkout_pane) {
       '#description' => t('For example, use the shipping information as the billing information.'),
       '#default_value' => variable_get('commerce_' . $checkout_pane['pane_id'] . '_profile_copy', FALSE),
     );
-
-    $form['commerce_' . $checkout_pane['pane_id'] . '_profile_copy_source'] = array(
-      '#type' => 'select',
-      '#title' => t('Source of profile information'),
-      '#options' => $profile_types,
-      '#default_value' => variable_get('commerce_' . $checkout_pane['pane_id'] . '_profile_copy_source', NULL),
+    $form['commerce_' . $checkout_pane['pane_id'] . '_profile_copy_wrapper'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Options for profile copying'),
       '#states' => array(
         'visible' => array(
           ':input[name="commerce_' . $checkout_pane['pane_id'] . '_profile_copy"]' => array('checked' => TRUE),
         ),
       ),
     );
+    $form['commerce_' . $checkout_pane['pane_id'] . '_profile_copy_wrapper']['commerce_' . $checkout_pane['pane_id'] . '_profile_copy_source'] = array(
+      '#type' => 'select',
+      '#title' => t('Source of profile information'),
+      '#options' => $profile_types,
+      '#default_value' => variable_get('commerce_' . $checkout_pane['pane_id'] . '_profile_copy_source', NULL),
+    );
+    $form['commerce_' . $checkout_pane['pane_id'] . '_profile_copy_wrapper']['commerce_' . $checkout_pane['pane_id'] . '_profile_copy_default'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Copy profile by default.'),
+      '#description' => t('Automatically copy the source profile selected above to this profile as the default action.'),
+      '#default_value' => variable_get('commerce_' . $checkout_pane['pane_id'] . '_profile_copy_default', TRUE),
+    );
   }
 
   return $form;
@@ -110,6 +119,8 @@ function commerce_customer_profile_pane_checkout_form($form, &$form_state, $chec
   // customer profile, add a checkbox to allow users to toggle this.
   if (variable_get('commerce_' . $checkout_pane['pane_id'] . '_profile_copy', FALSE)
     && $source_profile_type_name = variable_get('commerce_' . $checkout_pane['pane_id'] . '_profile_copy_source', NULL)) {
+    // Load the default profile copy optoin from settings.
+		$profile_copy_default = variable_get('commerce_' . $checkout_pane['pane_id'] . '_profile_copy_default', FALSE);
 
     // Make sure our profile type still exists..
     if ($source_profile_type = commerce_customer_profile_type_load($source_profile_type_name)) {
@@ -121,7 +132,7 @@ function commerce_customer_profile_pane_checkout_form($form, &$form_state, $chec
         '#type' => 'checkbox',
         '#title' => t('My @target is the same as my @source.', array('@target' => drupal_strtolower($target_profile_type['name']), '@source' => drupal_strtolower($source_profile_type['name']))),
         '#element_validate' => array('commerce_customer_profile_copy_validate'),
-        '#default_value' => isset($order->data['profile_copy'][$checkout_pane['pane_id']]['status']) ? $order->data['profile_copy'][$checkout_pane['pane_id']]['status'] : FALSE,
+        '#default_value' => isset($order->data['profile_copy'][$checkout_pane['pane_id']]['status']) ? $order->data['profile_copy'][$checkout_pane['pane_id']]['status'] : $profile_copy_default,
         '#weight' => -30,
         '#ajax' => array(
           'callback' => 'commerce_customer_profile_copy_ajax_callback',
@@ -145,6 +156,17 @@ function commerce_customer_profile_pane_checkout_form($form, &$form_state, $chec
           }
         }
       }
+      // If profile copy action has not been set and the default action TRUE.
+      elseif (empty($order->data['profile_copy']) && $profile_copy_default) {
+        // Get field names that will be copied from the source profile.
+        foreach (field_info_instances('commerce_customer_profile', $source_profile_type['type']) as $field_name => $field) {
+          $langcode = $pane_form[$field_name]['#language'];
+          // If the field exists on the destination profile then disable it.
+          if(!empty($pane_form[$field_name])){
+            $pane_form[$field_name][$langcode]['#access'] = FALSE;
+          }
+        }
+      }
     }
   }
 
diff --git a/modules/customer/tests/commerce_customer_ui.test b/modules/customer/tests/commerce_customer_ui.test
index 808c01f..2b2d494 100644
--- a/modules/customer/tests/commerce_customer_ui.test
+++ b/modules/customer/tests/commerce_customer_ui.test
@@ -569,6 +569,9 @@ class CommerceCustomerUITest extends CommerceBaseTestCase {
     variable_set('commerce_customer_profile_dummy_profile_copy', TRUE);
     variable_set('commerce_customer_profile_dummy_profile_copy_source', 'billing');
 
+    // Set the default action to copy the profile as TRUE.
+    variable_set('commerce_customer_profile_dummy_profile_copy_default', TRUE);
+
     // Create an order.
     $order = $this->createDummyOrder($this->store_customer->uid);
     // Login with customer.
@@ -592,7 +595,7 @@ class CommerceCustomerUITest extends CommerceBaseTestCase {
       'customer_profile_billing[commerce_customer_address][und][0][postal_code]' => $address_info['postal_code'],
       'customer_profile_dummy[commerce_customer_profile_copy]' => 1,
     );
-    $this->drupalPostAJAX(NULL, $info, 'customer_profile_dummy[commerce_customer_profile_copy]');
+
     $this->drupalPost(NULL, $info, t('Continue to next step'));
 
     // Check the customer profile at database level.
