--- a/boost/date_time/time_facet.hpp
+++ b/boost/date_time/time_facet.hpp
@@ -439,31 +439,31 @@
                               time_dur_arg.get_rep().as_special());
       }
 
-      string_type format(m_time_duration_format);
+      string_type local_format(m_time_duration_format);
       if (time_dur_arg.is_negative()) {
         // replace %- with minus sign.  Should we use the numpunct facet?
-        boost::algorithm::replace_all(format,
+        boost::algorithm::replace_all(local_format,
                                       duration_sign_negative_only,
                                       negative_sign);
           // remove all the %+ in the string with '-'
-        boost::algorithm::replace_all(format,
+        boost::algorithm::replace_all(local_format,
                                       duration_sign_always,
                                       negative_sign);
       }
       else { //duration is positive
         // remove all the %- combos from the string
-        boost::algorithm::erase_all(format, duration_sign_negative_only);
+        boost::algorithm::erase_all(local_format, duration_sign_negative_only);
         // remove all the %+ in the string with '+'
-        boost::algorithm::replace_all(format,
+        boost::algorithm::replace_all(local_format,
                                       duration_sign_always,
                                       positive_sign);
       }
 
       // %T and %R have to be replaced here since they are not standard
-      boost::algorithm::replace_all(format,
+      boost::algorithm::replace_all(local_format,
         boost::as_literal(formats_type::full_24_hour_time_format),
         boost::as_literal(formats_type::full_24_hour_time_expanded_format));
-      boost::algorithm::replace_all(format,
+      boost::algorithm::replace_all(local_format,
         boost::as_literal(formats_type::short_24_hour_time_format),
         boost::as_literal(formats_type::short_24_hour_time_expanded_format));
 
@@ -476,22 +476,22 @@
        * here ourself.
        */
       string_type hours_str;
-      if (format.find(unrestricted_hours_format) != string_type::npos) {
+      if (local_format.find(unrestricted_hours_format) != string_type::npos) {
         hours_str = hours_as_string(time_dur_arg);
-        boost::algorithm::replace_all(format, unrestricted_hours_format, hours_str);
+        boost::algorithm::replace_all(local_format, unrestricted_hours_format, hours_str);
       }
       // We still have to process restricted hours format specifier. In order to
       // support parseability of durations in ISO format (%H%M%S), we'll have to
       // restrict the stringified hours length to 2 characters.
-      if (format.find(hours_format) != string_type::npos) {
+      if (local_format.find(hours_format) != string_type::npos) {
         if (hours_str.empty())
           hours_str = hours_as_string(time_dur_arg);
         BOOST_ASSERT(hours_str.length() <= 2);
-        boost::algorithm::replace_all(format, hours_format, hours_str);
+        boost::algorithm::replace_all(local_format, hours_format, hours_str);
       }
 
       string_type frac_str;
-      if (format.find(seconds_with_fractional_seconds_format) != string_type::npos) {
+      if (local_format.find(seconds_with_fractional_seconds_format) != string_type::npos) {
         // replace %s with %S.nnn
         frac_str =
           fractional_seconds_as_string(time_dur_arg, false);
@@ -500,21 +500,21 @@
         string_type replace_string(seconds_format);
         replace_string += sep;
         replace_string += frac_str;
-        boost::algorithm::replace_all(format,
+        boost::algorithm::replace_all(local_format,
                                       seconds_with_fractional_seconds_format,
                                       replace_string);
       }
-      if (format.find(fractional_seconds_format) != string_type::npos) {
+      if (local_format.find(fractional_seconds_format) != string_type::npos) {
         // replace %f with nnnnnnn
         if (!frac_str.size()) {
           frac_str = fractional_seconds_as_string(time_dur_arg, false);
         }
-        boost::algorithm::replace_all(format,
+        boost::algorithm::replace_all(local_format,
                                       fractional_seconds_format,
                                       frac_str);
       }
 
-      if (format.find(fractional_seconds_or_none_format) != string_type::npos) {
+      if (local_format.find(fractional_seconds_or_none_format) != string_type::npos) {
         // replace %F with nnnnnnn or nothing if fs == 0
         frac_str =
           fractional_seconds_as_string(time_dur_arg, true);
@@ -523,18 +523,18 @@
           string_type replace_string;
           replace_string += sep;
           replace_string += frac_str;
-          boost::algorithm::replace_all(format,
+          boost::algorithm::replace_all(local_format,
                                         fractional_seconds_or_none_format,
                                         replace_string);
         }
         else {
-          boost::algorithm::erase_all(format,
+          boost::algorithm::erase_all(local_format,
                                       fractional_seconds_or_none_format);
         }
       }
 
       return this->do_put_tm(next_arg, ios_arg, fill_arg,
-                       to_tm(time_dur_arg), format);
+                       to_tm(time_dur_arg), local_format);
     }
 
     OutItrT put(OutItrT next, std::ios_base& ios_arg,
