diff --git a/src/libs/cplusplus/CppRewriter.cpp b/src/libs/cplusplus/CppRewriter.cpp
index 008249344c2c65be573b04a7eb53280556f5b50b..65191194e2636bb03e72c2e7259ae817e4b88f4c 100644
--- a/src/libs/cplusplus/CppRewriter.cpp
+++ b/src/libs/cplusplus/CppRewriter.cpp
@@ -527,6 +527,7 @@ CPLUSPLUS_EXPORT QString simplifySTLType(const QString &typeIn)
     if (type.startsWith(QLatin1String("struct ")))
         type.remove(0, 7);
 
+    type.replace(QLatin1String("std::__1::"), QLatin1String("std::"));
     type.replace(QLatin1Char('*'), QLatin1Char('@'));
 
     for (int i = 0; i < 10; ++i) {
diff --git a/tests/auto/cplusplus/simplifytypes/tst_simplifytypestest.cpp b/tests/auto/cplusplus/simplifytypes/tst_simplifytypestest.cpp
index e13a1ba8410599053fbc1d63bc00ba95e3ab8ed0..5f8349b54fb4a44472eb9e81ce248b5924f5c090 100644
--- a/tests/auto/cplusplus/simplifytypes/tst_simplifytypestest.cpp
+++ b/tests/auto/cplusplus/simplifytypes/tst_simplifytypestest.cpp
@@ -42,6 +42,7 @@ const char *description[] =
     "g++_stringset",
     "g++_stringvector",
     "g++_wstringvector",
+    "libc++_stringvector",
     "msvc_stdstring",
     "msvc_stdwstring",
     "msvc_stringmap",
@@ -63,6 +64,8 @@ const char *input[] =
 "std::set<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >",
 "std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >",
 "std::vector<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >",
+// libc++
+"std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >",
 // MSVC
 "class std::basic_string<char,std::char_traits<char>,std::allocator<char> >",
 "class std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> >",
@@ -76,6 +79,7 @@ const char *input[] =
 
 const char *output[] =
 {
+    // Gcc
     "std::string",
     "std::wstring",
     "std::map<std::string, std::string>",
@@ -84,6 +88,9 @@ const char *output[] =
     "std::set<std::string>",
     "std::vector<std::string>",
     "std::vector<std::wstring>",
+    // libc++
+    "std::vector<std::string>",
+    // MSVC
     "std::string",
     "std::wstring",
     "std::map<std::string, std::string>",