diff --git a/SOURCES/boost-1.53.0-lexical_cast.patch b/SOURCES/boost-1.53.0-lexical_cast.patch
new file mode 100644
index 0000000..245f47f
--- /dev/null
+++ b/SOURCES/boost-1.53.0-lexical_cast.patch
@@ -0,0 +1,67 @@
+diff -up boost_1_53_0/boost/lexical_cast.hpp\~ boost_1_53_0/boost/lexical_cast.hpp
+--- /boost_1_53_0/boost/lexical_cast.hpp~	2014-09-15 15:36:36.915684568 +0200
++++ /boost_1_53_0/boost/lexical_cast.hpp	2014-09-15 15:43:54.086756641 +0200
+@@ -2404,16 +2404,57 @@ namespace boost {
+         return caster_type::lexical_cast_impl(arg);
+     }
+ 
+-    template <typename Target, typename CharType>
+-    inline Target lexical_cast(const CharType* chars, std::size_t count)
++    template <typename Target>
++    inline Target lexical_cast(const char* chars, std::size_t count)
++     {
++        return ::boost::lexical_cast<Target>(
++            ::boost::iterator_range<const char*>(chars, chars + count)
++        );
++    }
++
++    template <typename Target>
++    inline Target lexical_cast(const unsigned char* chars, std::size_t count)
+     {
+-        BOOST_STATIC_ASSERT_MSG(boost::detail::is_char_or_wchar<CharType>::value, 
+-            "CharType must be a character or wide character type");
++         return ::boost::lexical_cast<Target>(
++            ::boost::iterator_range<const unsigned char*>(chars, chars + count)
++         );
++     }
+ 
+-        return boost::lexical_cast<Target>(
+-            boost::iterator_range<const CharType*>(chars, chars + count)
++    template <typename Target>
++    inline Target lexical_cast(const signed char* chars, std::size_t count)
++    {
++        return ::boost::lexical_cast<Target>(
++            ::boost::iterator_range<const signed char*>(chars, chars + count)
++        );
++    }
++
++#ifndef BOOST_LCAST_NO_WCHAR_T
++    template <typename Target>
++    inline Target lexical_cast(const wchar_t* chars, std::size_t count)
++    {
++        return ::boost::lexical_cast<Target>(
++            ::boost::iterator_range<const wchar_t*>(chars, chars + count)
+         );
+     }
++#endif
++#ifndef BOOST_NO_CHAR16_T
++    template <typename Target>
++    inline Target lexical_cast(const char16_t* chars, std::size_t count)
++    {
++        return ::boost::lexical_cast<Target>(
++            ::boost::iterator_range<const char16_t*>(chars, chars + count)
++        );
++    }
++#endif
++#ifndef BOOST_NO_CHAR32_T
++    template <typename Target>
++    inline Target lexical_cast(const char32_t* chars, std::size_t count)
++    {
++        return ::boost::lexical_cast<Target>(
++            ::boost::iterator_range<const char32_t*>(chars, chars + count)
++        );
++    }
++#endif
+ 
+ } // namespace boost
+ 
diff --git a/SOURCES/boost-1.54.0-interprocess-atomic_cas32-ppc.patch b/SOURCES/boost-1.54.0-interprocess-atomic_cas32-ppc.patch
new file mode 100644
index 0000000..e5268d1
--- /dev/null
+++ b/SOURCES/boost-1.54.0-interprocess-atomic_cas32-ppc.patch
@@ -0,0 +1,14 @@
+diff -up boost_1_54_0/boost/interprocess/detail/atomic.hpp\~ boost_1_54_0/boost/interprocess/detail/atomic.hpp
+--- boost_1_54_0/boost/interprocess/detail/atomic.hpp~	2012-09-24 14:17:34.000000000 +0200
++++ boost_1_54_0/boost/interprocess/detail/atomic.hpp	2013-08-29 16:36:51.682606594 +0200
+@@ -213,7 +213,7 @@ inline boost::uint32_t atomic_cas32
+                  "bne-   1b\n\t"
+                  "2:"
+                  : "=&r"(prev)
+-                 : "b" (mem), "r"(cmp), "r" (with)
++                 : "b" (mem), "r" (with), "r" (cmp)
+                  : "cc", "memory");
+    return prev;
+ }
+
+Diff finished.  Thu Aug 29 16:36:55 2013
diff --git a/SPECS/boost.spec b/SPECS/boost.spec
index d067da1..a27bc8e 100644
--- a/SPECS/boost.spec
+++ b/SPECS/boost.spec
@@ -5,13 +5,13 @@
 %define boost_docdir __tmp_docdir
 %define boost_examplesdir __tmp_examplesdir
 
-%ifarch %{arm}
+%ifarch %{arm} ppc64le
   %bcond_with mpich
 %else
   %bcond_without mpich
 %endif
 
-%ifarch s390 s390x %{arm}
+%ifarch s390 s390x %{arm} ppc64le
   # No OpenMPI support on these arches
   %bcond_with openmpi
 %else
@@ -34,7 +34,7 @@ Name: boost
 Summary: The free peer-reviewed portable C++ source libraries
 Version: 1.53.0
 %define version_enc 1_53_0
-Release: 18%{?dist}
+Release: 23%{?dist}
 License: Boost and MIT and Python
 
 %define toplev_dirname %{name}_%{version_enc}
@@ -204,6 +204,14 @@ Patch54: boost-1.53.0-mpi-version_type.patch
 # https://bugzilla.redhat.com/show_bug.cgi?id=1070789
 Patch55: boost-1.53.0-buildflags.patch
 
+# https://bugzilla.redhat.com/show_bug.cgi?id=1002578
+# https://svn.boost.org/trac/boost/ticket/9065
+Patch56: boost-1.54.0-interprocess-atomic_cas32-ppc.patch
+
+# https://bugzilla.redhat.com/show_bug.cgi?id=1134058
+# https://svn.boost.org/trac/boost/ticket/7421
+Patch57: boost-1.53.0-lexical_cast.patch
+
 %bcond_with tests
 %bcond_with docs_generated
 
@@ -668,6 +676,8 @@ a number of significant features and is now developed independently
 %patch53 -p1
 %patch54 -p1
 %patch55 -p1
+%patch56 -p1
+%patch57 -p2
 
 # At least python2_version needs to be a macro so that it's visible in
 # %%install as well.
@@ -1239,6 +1249,19 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/bjam.1*
 
 %changelog
+* Mon Sep 22 2014 Petr Machata <pmachata@redhat.com> - 1.53.0-23
+- Fix ambiguity in Boost.LexicalCast.
+
+* Wed Sep 10 2014 Petr Machata <pmachata@redhat.com> - 1.53.0-22
+- Re-enable mpich and openmpi on aarch64, they are available now.
+
+* Fri Aug 22 2014 Petr Machata <pmachata@redhat.com> - 1.53.0-21
+- Fix atomic_cas32 (thanks Jaroslav Škarvada for figuring out where
+  the problem is) (boost-1.54.0-interprocess-atomic_cas32-ppc.patch)
+
+* Fri Aug  8 2014 Petr Machata <pmachata@redhat.com> - 1.53.0-20
+- Disable mpich and openmpi support for ppc64le until port available.
+
 * Fri Feb 28 2014 Petr Machata <pmachata@redhat.com> - 1.53.0-18
 - Turn off build flags pre-set by Boost distribution.
   (boost-1.53.0-buildflags.patch)
@@ -1248,6 +1271,9 @@ rm -rf $RPM_BUILD_ROOT
 - Fix misunderstanding of Boost.MPI about widths of some
   Boost.Serialization types.  (boost-1.53.0-mpi-version_type.patch)
 
+* Tue Feb 4 2014 Brendan Conoboy <blc@redhat.com> - 1.53.0-16.1
+- Disable mpich and openmpi support for aarch64 until port available.
+
 * Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 1.53.0-16
 - Mass rebuild 2014-01-24