diff --git a/modules/customer/commerce_customer.module b/modules/customer/commerce_customer.module
index b52c256..d96e706 100644
--- a/modules/customer/commerce_customer.module
+++ b/modules/customer/commerce_customer.module
@@ -829,6 +829,13 @@ function commerce_customer_form_field_ui_field_edit_form_alter(&$form, &$form_st
     $form['field']['cardinality']['#options'] = array('1' => '1');
     $form['field']['cardinality']['#description'] = t('The customer profile manager widget only supports single value editing and entry via its form.');
   }
+  if ($form['#instance']['entity_type'] == 'commerce_customer_profile') {
+    $form['instance']['show_fieldset'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Show fieldset wrapper'),
+      '#default_value' => isset($form['#instance']['show_fieldset']) ? $form['#instance']['show_fieldset'] : FALSE,
+    );
+  }
 }
 
 /**
@@ -908,32 +915,30 @@ function commerce_customer_field_widget_form(&$form, &$form_state, $field, $inst
 
       field_attach_form('commerce_customer_profile', $profile, $element['profiles'][$key], $form_state);
 
-      // Tweak the form to remove the fieldset from the address field if there
-      // is only one on this profile.
-      $addressfields = array();
-
+      // Tweak the form to remove the fieldset from the show_fieldset checkbox
+      // is not selected.
       foreach (commerce_info_fields('addressfield', 'commerce_customer_profile') as $field_name => $field) {
-        $langcode = $element['profiles'][$key][$field_name]['#language'];
-
-        // Only consider this addressfield if it's represented on the form.
-        if (!empty($element['profiles'][$key][$field_name][$langcode])) {
-          $addressfields[] = array($field_name, $langcode);
-        }
-      }
-
-      // Check to ensure only one addressfield was found on the form.
-      if (count($addressfields) == 1) {
-        list($field_name, $langcode) = array_shift($addressfields);
-
-        foreach (element_children($element['profiles'][$key][$field_name][$langcode]) as $delta) {
-          // Don't mess with the "Add another item" button that could be present.
-          if ($element['profiles'][$key][$field_name][$langcode][$delta]['#type'] != 'submit') {
-            $element['profiles'][$key][$field_name][$langcode][$delta]['#type'] = 'container';
+        // The field might not exist on this bundle.
+        if (isset($element['profiles'][$key][$field_name])) {
+          $langcode = $element['profiles'][$key][$field_name]['#language'];
+          // Only consider this addressfield if it's represented on the form.
+          if (!empty($element['profiles'][$key][$field_name][$langcode])) {
+            // Get each field instance attached to commerce_customer_profile.
+            $bundle = $element['profiles'][$key]['#bundle'];
+            $address_instance = field_info_instance('commerce_customer_profile', $field_name, $bundle);
+            // If show_fieldset is not selected, remove it.
+            if (empty($address_instance['show_fieldset'])) {
+              foreach (element_children($element['profiles'][$key][$field_name][$langcode]) as $delta) {
+                // Don't mess with the "Add another item" button that could be present.
+                if ($element['profiles'][$key][$field_name][$langcode][$delta]['#type'] != 'submit') {
+                  $element['profiles'][$key][$field_name][$langcode][$delta]['#type'] = 'container';
+                }
+              }
+              // Remove the default #parents array so the normal tree can do its thing.
+              unset($element['profiles'][$key]['#parents']);
+            }
           }
         }
-
-        // Remove the default #parents array so the normal tree can do its thing.
-        unset($element['profiles'][$key]['#parents']);
       }
 
       // This checkbox will be overridden with a clickable delete image.
