Index: iterator_facade.hpp
===================================================================
--- iterator_facade.hpp	(revision 47085)
+++ iterator_facade.hpp	(working copy)
@@ -110,6 +110,8 @@
           , add_pointer<const value_type>
           , add_pointer<value_type>
         >::type pointer;
+
+        typedef typename mpl::if_<is_same<Difference,void>, std::ptrdiff_t, Difference>::type difference_type;
       
 # if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)                          \
     && (BOOST_WORKAROUND(_STLPORT_VERSION, BOOST_TESTED_AT(0x452))              \
@@ -124,7 +126,7 @@
 #  define BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE 1
 
         typedef
-           iterator<iterator_category, value_type, Difference, pointer, Reference>
+           iterator<iterator_category, value_type, difference_type, pointer, Reference>
         base;
 # endif
     };
@@ -626,7 +628,7 @@
 
       typedef typename associated_types::value_type value_type;
       typedef Reference reference;
-      typedef Difference difference_type;
+      typedef typename associated_types::difference_type difference_type;
       typedef typename associated_types::pointer pointer;
       typedef typename associated_types::iterator_category iterator_category;
 
