diff --git a/commerce_discount.inline_conditions.inc b/commerce_discount.inline_conditions.inc
index 68f068b..a6fac26 100644
--- a/commerce_discount.inline_conditions.inc
+++ b/commerce_discount.inline_conditions.inc
@@ -56,6 +56,15 @@ function commerce_discount_inline_conditions_info() {
         'build' => 'commerce_order_has_specific_quantity_products_build',
       ),
     );
+
+    $conditions['commerce_order_compare_address'] = array(
+      'label' => t('Address'),
+      'entity type' => 'commerce_order',
+      'callbacks' => array(
+        'configure' => 'commerce_order_compare_address_configure',
+        'build' => 'commerce_order_rules_compare_address',
+      ),
+    );
   }
 
   if (module_exists('commerce_shipping')) {
@@ -419,6 +428,66 @@ function commerce_order_has_specific_quantity_products_configure($settings) {
 }
 
 /**
+ * Configuration callback for commerce_order_compare_address_configure.
+ *
+ * @param array $settings
+ *   An array of rules condition settings.
+ *
+ * @return array;
+ *   A form element array.
+ */
+function commerce_order_compare_address_configure($settings) {
+  $form = array();
+
+  $file = drupal_get_path('module', 'commerce_order') . '/commerce_order.rules.inc';
+  require_once DRUPAL_ROOT . '/' . $file;
+
+  // Need a list of all address fields on customer profile bundles.
+  $form['address_field'] = array(
+    '#type' => 'select',
+    '#multiple' => FALSE,
+    '#options' => commerce_order_address_field_options_list(),
+    '#title' => t('Address field'),
+    '#title_display' => 'invisible',
+    '#default_value' => !empty($settings['address_field']) ? $settings['address_field'] : FALSE,
+    '#require' => TRUE,
+  );
+
+  // Need a list of address component options to compare.
+  $form['address_component'] = array(
+    '#type' => 'select',
+    '#multiple' => FALSE,
+    '#options' => commerce_order_address_component_options_list(),
+    '#title' => t('Address component'),
+    '#title_display' => 'invisible',
+    '#default_value' => !empty($settings['address_component']) ? $settings['address_component'] : FALSE,
+    '#require' => TRUE,
+  );
+
+  $form['operator'] = array(
+    '#type' => 'select',
+    '#multiple' => FALSE,
+    '#options' => commerce_order_address_comparison_operator_options_list(),
+    '#title' => t('Operator'),
+    '#title_display' => 'invisible',
+    '#default_value' => !empty($settings['operator']) ? $settings['operator'] : FALSE,
+    '#require' => TRUE,
+  );
+
+  $form['value'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Value'),
+    '#title_display' => 'invisible',
+    '#rows' => 3,
+    '#default_value' => !empty($settings['value']) ? $settings['value'] : FALSE,
+    '#require' => TRUE,
+    '#suffix' => '<div class="condition-instructions">' . t('The discount is active if the order address component selected matches the entered value. For the entered value bear in mind that addresses using select lists for various components may use a value different from the option you select. For example, countries are selected by name, but the value is the two letter abbreviation. For comparisons with multiple possible values, place separate values on new lines.') . '</div>',
+  );
+
+  return $form;
+}
+
+/**
  * Configuration callback for commerce_shipping_compare_shipping_service.
  *
  * @param array $settings
