diff --git a/commerce_single_address.checkout_pane.inc b/commerce_single_address.checkout_pane.inc
index 2c7cec4..3b5ab08 100644
--- a/commerce_single_address.checkout_pane.inc
+++ b/commerce_single_address.checkout_pane.inc
@@ -48,13 +48,20 @@ function commerce_single_address_pane_checkout_form($form, &$form_state, $checko
   // Extract the type of profile represented by this pane from its ID.
   $type = substr($pane_id, 17); // Removes 'customer_profile_'
 
+  $field_name = variable_get('commerce_' . $pane_id . '_field', '');
+  // The specified profile reference field doesn't exist on this order type.
+  // A consequence of the checkout settings applying for all order types.
+  if ($field_name && !field_info_instance('commerce_order', $field_name, $order->type)) {
+    return array();
+  }
+
   // Find the referenced profile using the related reference field...
   $wrapper = entity_metadata_wrapper('commerce_order', $order);
   $profile = NULL;
   $mode = 'view';
 
   // If the associated order field has been set...
-  if ($field_name = variable_get('commerce_' . $pane_id . '_field', '')) {
+  if ($field_name) {
     $profile = $wrapper->{$field_name}->value();
   }
   else {
@@ -178,6 +185,12 @@ function commerce_single_address_pane_edit($form, &$form_state) {
  */
 function commerce_single_address_pane_checkout_form_validate($form, &$form_state, $checkout_pane, $order) {
   $pane_id = $checkout_pane['pane_id'];
+  $field_name = variable_get('commerce_' . $pane_id . '_field', '');
+  // The specified profile reference field doesn't exist on this order type.
+  // A consequence of the checkout settings applying for all order types.
+  if ($field_name && !field_info_instance('commerce_order', $field_name, $order->type)) {
+    return TRUE;
+  }
 
   // Validate "edit" and "new" modes.
   if ($form_state['pane_' . $pane_id]['mode'] != 'view') {
@@ -206,6 +219,12 @@ function commerce_single_address_pane_checkout_form_validate($form, &$form_state
 function commerce_single_address_pane_checkout_form_submit($form, &$form_state, $checkout_pane, $order) {
   $pane_id = $checkout_pane['pane_id'];
   $profile = $form_state['pane_' . $pane_id]['profile'];
+  $field_name = variable_get('commerce_' . $pane_id . '_field', '');
+  // The specified profile reference field doesn't exist on this order type.
+  // A consequence of the checkout settings applying for all order types.
+  if ($field_name && !field_info_instance('commerce_order', $field_name, $order->type)) {
+    return;
+  }
 
   // Save the customer profile in the "new" and "edit" modes.
   if ($form_state['pane_' . $pane_id]['mode'] != 'view') {
@@ -232,7 +251,7 @@ function commerce_single_address_pane_checkout_form_submit($form, &$form_state,
   // Store the profile ID for the related field as specified on the settings form.
   $wrapper = entity_metadata_wrapper('commerce_order', $order);
 
-  if ($field_name = variable_get('commerce_' . $checkout_pane['pane_id'] . '_field', '')) {
+  if ($field_name) {
     $wrapper->{$field_name} = $profile;
   }
   else {
