diff --git a/boostcpp.jam b/boostcpp.jam
index e2d04cc..f071015 100644
--- a/boostcpp.jam
+++ b/boostcpp.jam
@@ -22,6 +22,7 @@ import project ;
 import regex ;
 import set ;
 import targets ;
+import feature ;
 import property ;
 
 ##############################################################################
@@ -595,22 +596,26 @@ rule declare-targets ( all-libraries * : headers * )
     declare_top_level_targets $(libraries) : $(headers) ;
 }
 
+feature.feature deduced-address-model : 32 64 : propagated optional composite hidden ;
+feature.compose <deduced-address-model>32 : <address-model>32 ;
+feature.compose <deduced-address-model>64 : <address-model>64 ; 
+
 rule deduce-address-model ( properties * )
 {
     local result = [ property.select <address-model> : $(properties) ] ;
     if $(result)
     {
-        return $(result) ;
+        return $(result) [ property.select <deduced-address-model> : $(properties) ] ;
     }
     else
     {
         if [ configure.builds /boost/architecture//32 : $(properties) : 32-bit ]
         {
-            return <address-model>32 ;
+            return <deduced-address-model>32 ;
         }
         else if [ configure.builds /boost/architecture//64 : $(properties) : 64-bit ]
         {
-            return <address-model>64 ;
+            return <deduced-address-model>64 ;
         }
     }
 }

