diff --git a/scripts/deployqt.py b/scripts/deployqt.py
index 64dbe426e37b7299057b7cc26af0438bc44b3245..11ff8c013b9be7122d5640e52e8e0be1e77c73a0 100755
--- a/scripts/deployqt.py
+++ b/scripts/deployqt.py
@@ -200,28 +200,36 @@ def copyPreservingLinks(source, destination):
 def deploy_libclang(install_dir, llvm_install_dir, chrpath_bin):
     # contains pairs of (source, target directory)
     deployinfo = []
+    resourcesource = os.path.join(llvm_install_dir, 'lib', 'clang')
     if common.is_windows_platform():
+        clangbindirtarget = os.path.join(install_dir, 'bin', 'clang', 'bin')
+        if not os.path.exists(clangbindirtarget):
+            os.makedirs(clangbindirtarget)
+        clanglibdirtarget = os.path.join(install_dir, 'bin', 'clang', 'lib')
+        if not os.path.exists(clanglibdirtarget):
+            os.makedirs(clanglibdirtarget)
         deployinfo.append((os.path.join(llvm_install_dir, 'bin', 'libclang.dll'),
                            os.path.join(install_dir, 'bin')))
         deployinfo.append((os.path.join(llvm_install_dir, 'bin', 'clang.exe'),
-                           os.path.join(install_dir, 'bin')))
+                           clangbindirtarget))
         deployinfo.append((os.path.join(llvm_install_dir, 'bin', 'clang-cl.exe'),
-                           os.path.join(install_dir, 'bin')))
+                           clangbindirtarget))
+        resourcetarget = os.path.join(clanglibdirtarget, 'clang')
     else:
         libsources = glob(os.path.join(llvm_install_dir, 'lib', 'libclang.so*'))
         for libsource in libsources:
             deployinfo.append((libsource, os.path.join(install_dir, 'lib', 'qtcreator')))
         clangbinary = os.path.join(llvm_install_dir, 'bin', 'clang')
-        clangbinary_targetdir = os.path.join(install_dir, 'libexec', 'qtcreator')
+        clangbinary_targetdir = os.path.join(install_dir, 'libexec', 'qtcreator', 'clang', 'bin')
+        if not os.path.exists(clangbinary_targetdir):
+            os.makedirs(clangbinary_targetdir)
         deployinfo.append((clangbinary, clangbinary_targetdir))
         # copy link target if clang is actually a symlink
         if os.path.islink(clangbinary):
             linktarget = os.readlink(clangbinary)
             deployinfo.append((os.path.join(os.path.dirname(clangbinary), linktarget),
                                os.path.join(clangbinary_targetdir, linktarget)))
-
-    resourcesource = os.path.join(llvm_install_dir, 'lib', 'clang')
-    resourcetarget = os.path.join(install_dir, 'share', 'qtcreator', 'cplusplus', 'clang')
+        resourcetarget = os.path.join(install_dir, 'libexec', 'qtcreator', 'clang', 'lib', 'clang')
 
     print "copying libclang..."
     for source, target in deployinfo:
diff --git a/scripts/deployqtHelper_mac.sh b/scripts/deployqtHelper_mac.sh
index df0660a21790ff13e210406763dfd17255992b9f..d5b156823aec717b99e7ad8f00f651d3bc811836 100755
--- a/scripts/deployqtHelper_mac.sh
+++ b/scripts/deployqtHelper_mac.sh
@@ -91,13 +91,15 @@ if [ $LLVM_INSTALL_DIR ]; then
         echo "- Copying libclang"
         mkdir -p "$1/Contents/Frameworks" || exit 1
         # use recursive copy to make it copy symlinks as symlinks
+        mkdir -p "$1/Contents/Resources/clang/bin"
+        mkdir -p "$1/Contents/Resources/clang/lib"
         cp -Rf "$LLVM_INSTALL_DIR"/lib/libclang.*dylib "$1/Contents/Frameworks/" || exit 1
-        cp -Rf "$LLVM_INSTALL_DIR"/lib/clang "$1/Contents/Resources/cplusplus/" || exit 1
+        cp -Rf "$LLVM_INSTALL_DIR"/lib/clang "$1/Contents/Resources/clang/lib/" || exit 1
         clangsource="$LLVM_INSTALL_DIR"/bin/clang
         clanglinktarget="$(readlink "$clangsource")"
-        cp -Rf "$clangsource" "$1/Contents/Resources/" || exit 1
+        cp -Rf "$clangsource" "$1/Contents/Resources/clang/bin/" || exit 1
         if [ $clanglinktarget ]; then
-            cp -Rf "$(dirname "$clangsource")/$clanglinktarget" "$1/Contents/Resources/$clanglinktarget" || exit 1
+            cp -Rf "$(dirname "$clangsource")/$clanglinktarget" "$1/Contents/Resources/clang/bin/$clanglinktarget" || exit 1
         fi
     fi
     _CLANG_CODEMODEL_LIB="$1/Contents/PlugIns/libClangCodeModel_debug.dylib"
diff --git a/src/plugins/clangcodemodel/clangutils.cpp b/src/plugins/clangcodemodel/clangutils.cpp
index 9f40981f68be3c91ee23a0252c4b8a2fdc1cc25a..5ef7b1648d683661e8e2332f1121234d9aba4eef 100644
--- a/src/plugins/clangcodemodel/clangutils.cpp
+++ b/src/plugins/clangcodemodel/clangutils.cpp
@@ -71,8 +71,10 @@ QStringList createClangOptions(const ProjectPart::Ptr &pPart, const QString &fil
 
 static QString getResourceDir()
 {
-    QDir dir(ICore::instance()->resourcePath() + QLatin1String("/cplusplus/clang/") +
-             QLatin1String(CLANG_VERSION) + QLatin1String("/include"));
+    QDir dir(ICore::libexecPath()
+                + QLatin1String("/clang/lib/clang/")
+                + QLatin1String(CLANG_VERSION)
+                + QLatin1String("/include"));
     if (!dir.exists() || !QFileInfo(dir, QLatin1String("stdint.h")).exists())
         dir = QDir(QLatin1String(CLANG_RESOURCE_DIR));
     return dir.canonicalPath();
diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzersettings.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzersettings.cpp
index 36d13c7c0f251ab36e11ae68299e2e508890ee99..ad1ed074329fef4af4e417b212d2e9d16eb249ca 100644
--- a/src/plugins/clangstaticanalyzer/clangstaticanalyzersettings.cpp
+++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzersettings.cpp
@@ -60,8 +60,9 @@ static QString clangExecutableFileName()
 
 QString ClangStaticAnalyzerSettings::defaultClangExecutable() const
 {
-    const QString shippedBinary = Core::ICore::libexecPath() + QLatin1Char('/')
-            + clangExecutableFileName();
+    const QString shippedBinary = Core::ICore::libexecPath()
+                    + QLatin1String("/clang/bin/")
+                    + clangExecutableFileName();
     if (QFileInfo(shippedBinary).isExecutable())
         return shippedBinary;
     return clangExecutableFileName();