diff --git a/bin/qtcreator b/bin/qtcreator
index 931b3dd4616a041f57ad6e7e7795df1896604aa3..b915628c3e518e3311883f3fe57adb71d939180b 100755
--- a/bin/qtcreator
+++ b/bin/qtcreator
@@ -1,5 +1,9 @@
 #!/bin/sh
 
 bindir=$(dirname "$0")
-libdir=$(cd ${bindir}/../lib ; pwd)
+if test "$(uname -m)" = "x86_64" ; then
+    libdir=$(cd ${bindir}/../lib64 ; pwd)
+else
+    libdir=$(cd ${bindir}/../lib ; pwd)
+fi
 LD_LIBRARY_PATH="${libdir}:${LD_LIBRARY_PATH}" "${bindir}/qtcreator.bin" ${1+"$@"}
diff --git a/src/app/main.cpp b/src/app/main.cpp
index d1f5db1232df079065762d5dd196e93fa1034f35..655095956a76f1439114e7d6dee82f7b0cea4ee1 100644
--- a/src/app/main.cpp
+++ b/src/app/main.cpp
@@ -179,7 +179,11 @@ static inline QStringList getPluginPaths()
     // 1) "plugins" (Win/Linux)
     QString pluginPath = rootDirPath;
     pluginPath += QDir::separator();
+#ifdef QT_ARCH_X86_64
+    pluginPath += QLatin1String("lib64");
+#else
     pluginPath += QLatin1String("lib");
+#endif
     pluginPath += QDir::separator();
     pluginPath += QLatin1String("qtcreator");
     pluginPath += QDir::separator();
diff --git a/src/qworkbench.pri b/src/qworkbench.pri
index deda9ae21f0ec8ed72248ce31370394dfc24af33..762713bbb156aca3a18cb68ba41f318454ba9fe8 100644
--- a/src/qworkbench.pri
+++ b/src/qworkbench.pri
@@ -6,6 +6,12 @@ isEmpty(TEST):CONFIG(debug, debug|release) {
     }
 }
 
+linux-g++-64 {
+    IDE_LIBRARY_BASENAME = lib64
+} else {
+    IDE_LIBRARY_BASENAME = lib
+}
+
 equals(TEST, 1) {
     QT +=testlib
     DEFINES += WITH_TESTS
@@ -21,7 +27,7 @@ macx {
     contains(QT_CONFIG, ppc):CONFIG += ppc x86
 } else {
     IDE_APP_TARGET   = qtcreator.bin
-    IDE_LIBRARY_PATH = $$IDE_BUILD_TREE/lib/qtcreator
+    IDE_LIBRARY_PATH = $$IDE_BUILD_TREE/$$IDE_LIBRARY_BASENAME/qtcreator
     IDE_PLUGIN_PATH  = $$IDE_LIBRARY_PATH/plugins/
 }
 IDE_APP_PATH = $$IDE_BUILD_TREE/bin
diff --git a/src/qworkbenchlibrary.pri b/src/qworkbenchlibrary.pri
index a8af3d7edbdcaf1e018c585a9109e449023696b9..7a04fe45558581ed98d492f36173844ae3175287 100644
--- a/src/qworkbenchlibrary.pri
+++ b/src/qworkbenchlibrary.pri
@@ -14,6 +14,6 @@ TARGET = $$qtLibraryTarget($$TARGET)
 contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
 
 linux-* {
-	target.path = /lib/qtcreator
+	target.path = /$$IDE_LIBRARY_BASENAME/qtcreator
 	INSTALLS += target
-    }
+}
diff --git a/src/qworkbenchplugin.pri b/src/qworkbenchplugin.pri
index bdf17469aa8c0fd79da68c7304ea89894c3823dd..d7c9a64b68b181b03bf2ea058e0812fb41d7ac1f 100644
--- a/src/qworkbenchplugin.pri
+++ b/src/qworkbenchplugin.pri
@@ -17,7 +17,7 @@ isEmpty(TARGET) {
     error("qworkbenchplugin.pri: You must provide a TARGET")
 }
 
-# Copy the pluginspec file to the liberary directyory.
+# Copy the pluginspec file to the library directory.
 # Note: On Windows/MinGW with some sh.exe in the path,
 # QMAKE_COPY is some cp command that does not understand
 # "\". Force the standard windows copy.
@@ -54,8 +54,8 @@ contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
 CONFIG += plugin plugin_with_soname
 
 linux-* {
-    target.path = /lib/qtcreator/plugins/$$PROVIDER
+    target.path = /$$IDE_LIBRARY_BASENAME/qtcreator/plugins/$$PROVIDER
     pluginspec.files += $${TARGET}.pluginspec
-    pluginspec.path = /lib/qtcreator/plugins/$$PROVIDER
+    pluginspec.path = /$$IDE_LIBRARY_BASENAME/qtcreator/plugins/$$PROVIDER
     INSTALLS += target pluginspec
 }
diff --git a/src/rpath.pri b/src/rpath.pri
index 8b026982c96c5158c5e6564585bf410f059abbd5..e11b171c8e4779c8472602a1b2ec8ae71e918c56 100644
--- a/src/rpath.pri
+++ b/src/rpath.pri
@@ -3,7 +3,7 @@ macx {
 } else:linux-* {
     #do the rpath by hand since it's not possible to use ORIGIN in QMAKE_RPATHDIR
     # this expands to $ORIGIN (after qmake and make), it does NOT read a qmake var
-    QMAKE_RPATHDIR += \$\$ORIGIN/../lib/qtcreator
+    QMAKE_RPATHDIR += \$\$ORIGIN/../$$IDE_LIBRARY_BASENAME/qtcreator
     IDE_PLUGIN_RPATH = $$join(QMAKE_RPATHDIR, ":")
  
     QMAKE_LFLAGS += -Wl,-z,origin \'-Wl,-rpath,$${IDE_PLUGIN_RPATH}\'