 addressfield.module | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/addressfield.module b/addressfield.module
index 5307af5..f773da0 100644
--- a/addressfield.module
+++ b/addressfield.module
@@ -377,7 +377,12 @@ function addressfield_element_process($element, &$form_state, $form) {
   }
 
   // Set the element to required based on the passed in required flag.
-  $element['address']['country']['#required'] = isset($element['#required']) ? $element['#required'] : FALSE;
+  if (isset($element['#context']['instance']['required'])) {
+    $element['address']['country']['#required'] = $element['#context']['instance']['required'];
+  }
+  else if (isset($element['#required'])) {
+    $element['address']['country']['#required'] = $element['#required'];
+  }
   
   // Set the #parents of the children of this element so they appear at the same
   // level as the parent.
