diff --git a/include/boost/chrono/io/duration_get.hpp b/include/boost/chrono/io/duration_get.hpp
index ce3075b..5a0a875 100644
--- a/include/boost/chrono/io/duration_get.hpp
+++ b/include/boost/chrono/io/duration_get.hpp
@@ -14,7 +14,7 @@
 #include <boost/utility/enable_if.hpp>
 #include <boost/type_traits/is_signed.hpp>
 #include <boost/mpl/if.hpp>
-#include <boost/math/common_factor_rt.hpp>
+#include <boost/integer/common_factor_rt.hpp>
 #include <boost/chrono/detail/scan_keyword.hpp>
 #include <boost/chrono/detail/no_warning/signed_unsigned_cmp.hpp>
 #include <boost/chrono/process_cpu_clocks.hpp>
@@ -58,7 +58,7 @@ namespace boost
         typedef typename common_type<intermediate_type, unsigned long long>::type common_type_t;
 
         // Reduce r * num / den
-        common_type_t t = math::gcd<common_type_t>(common_type_t(r), common_type_t(den));
+        common_type_t t = integer::gcd<common_type_t>(common_type_t(r), common_type_t(den));
         r /= t;
         den /= t;
         if (den != 1)
@@ -278,8 +278,8 @@ namespace boost
 
         // r should be multiplied by (num/den) / Period
         // Reduce (num/den) / Period to lowest terms
-        unsigned long long gcd_n1_n2 = math::gcd<unsigned long long>(num, Period::num);
-        unsigned long long gcd_d1_d2 = math::gcd<unsigned long long>(den, Period::den);
+        unsigned long long gcd_n1_n2 = integer::gcd<unsigned long long>(num, Period::num);
+        unsigned long long gcd_d1_d2 = integer::gcd<unsigned long long>(den, Period::den);
         num /= gcd_n1_n2;
         den /= gcd_d1_d2;
         unsigned long long n2 = Period::num / gcd_n1_n2;
diff --git a/include/boost/chrono/io_v1/chrono_io.hpp b/include/boost/chrono/io_v1/chrono_io.hpp
index 1a7e832..12d9f54 100644
--- a/include/boost/chrono/io_v1/chrono_io.hpp
+++ b/include/boost/chrono/io_v1/chrono_io.hpp
@@ -22,7 +22,7 @@
 #include <boost/type_traits/is_scalar.hpp>
 #include <boost/type_traits/is_signed.hpp>
 #include <boost/mpl/if.hpp>
-#include <boost/math/common_factor_rt.hpp>
+#include <boost/integer/common_factor_rt.hpp>
 #include <boost/chrono/detail/scan_keyword.hpp>
 #include <boost/utility/enable_if.hpp>
 #include <boost/chrono/detail/no_warning/signed_unsigned_cmp.hpp>
@@ -241,7 +241,7 @@ reduce(intermediate_type& r, unsigned long long& den, std::ios_base::iostate& er
   typedef typename common_type<intermediate_type, unsigned long long>::type common_type_t;
 
     // Reduce r * num / den
-  common_type_t t = math::gcd<common_type_t>(common_type_t(r), common_type_t(den));
+  common_type_t t = integer::gcd<common_type_t>(common_type_t(r), common_type_t(den));
   r /= t;
   den /= t;
   if (den != 1)
@@ -504,8 +504,8 @@ operator>>(std::basic_istream<CharT, Traits>& is, duration<Rep, Period>& d)
                 // unit is num/den
                 // r should be multiplied by (num/den) / Period
                 // Reduce (num/den) / Period to lowest terms
-                unsigned long long gcd_n1_n2 = math::gcd<unsigned long long>(num, Period::num);
-                unsigned long long gcd_d1_d2 = math::gcd<unsigned long long>(den, Period::den);
+                unsigned long long gcd_n1_n2 = integer::gcd<unsigned long long>(num, Period::num);
+                unsigned long long gcd_d1_d2 = integer::gcd<unsigned long long>(den, Period::den);
                 num /= gcd_n1_n2;
                 den /= gcd_d1_d2;
                 unsigned long long n2 = Period::num / gcd_n1_n2;