diff --git a/googlemock/include/gmock/gmock-generated-matchers.h b/googlemock/include/gmock/gmock-generated-matchers.h
index 169ea57b..21af61ba 100644
--- a/googlemock/include/gmock/gmock-generated-matchers.h
+++ b/googlemock/include/gmock/gmock-generated-matchers.h
@@ -997,40 +997,6 @@ UnorderedElementsAre(const T1& e1, const T2& e2, const T3& e3, const T4& e4,
       e6, e7, e8, e9, e10));
 }
 
-template <typename T1, typename T2, typename T3, typename T4, typename T5,
-          typename T6, typename T7, typename T8, typename T9, typename T10,
-          typename T11>
-inline internal::UnorderedElementsAreMatcher<
-    ::testing::tuple<typename internal::DecayArray<T1>::type,
-                     typename internal::DecayArray<T2>::type,
-                     typename internal::DecayArray<T3>::type,
-                     typename internal::DecayArray<T4>::type,
-                     typename internal::DecayArray<T5>::type,
-                     typename internal::DecayArray<T6>::type,
-                     typename internal::DecayArray<T7>::type,
-                     typename internal::DecayArray<T8>::type,
-                     typename internal::DecayArray<T9>::type,
-                     typename internal::DecayArray<T10>::type,
-                     typename internal::DecayArray<T11>::type> >
-UnorderedElementsAre(const T1& e1, const T2& e2, const T3& e3, const T4& e4,
-                     const T5& e5, const T6& e6, const T7& e7, const T8& e8,
-                     const T9& e9, const T10& e10, const T11& e11) {
-  typedef ::testing::tuple<typename internal::DecayArray<T1>::type,
-                           typename internal::DecayArray<T2>::type,
-                           typename internal::DecayArray<T3>::type,
-                           typename internal::DecayArray<T4>::type,
-                           typename internal::DecayArray<T5>::type,
-                           typename internal::DecayArray<T6>::type,
-                           typename internal::DecayArray<T7>::type,
-                           typename internal::DecayArray<T8>::type,
-                           typename internal::DecayArray<T9>::type,
-                           typename internal::DecayArray<T10>::type,
-                           typename internal::DecayArray<T11>::type>
-      Args;
-  return internal::UnorderedElementsAreMatcher<Args>(
-      Args(e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11));
-}
-
 // AllOf(m1, m2, ..., mk) matches any value that matches all of the given
 // sub-matchers.  AllOf is called fully qualified to prevent ADL from firing.
 
diff --git a/googlemock/include/gmock/gmock-matchers.h b/googlemock/include/gmock/gmock-matchers.h
index fcb45acd..62e92338 100644
--- a/googlemock/include/gmock/gmock-matchers.h
+++ b/googlemock/include/gmock/gmock-matchers.h
@@ -5211,6 +5211,12 @@ inline internal::AnyOfMatcher<Args...> AnyOf(const Args&... matchers) {
   return internal::AnyOfMatcher<Args...>(matchers...);
 }
 
+template <typename... Args>
+inline internal::UnorderedElementsAreMatcher<Args...>
+UnorderedElementsAreMatcher(const Args&... matchers) {
+  return internal::UnorderedElementsAreMatcher<Args...>(matchers...);
+}
+
 #endif  // GTEST_LANG_CXX11
 
 // AllArgs(m) is a synonym of m.  This is useful in