diff --git a/tests/system/settings/unix/Nokia/qtcreator/toolchains.xml b/tests/system/settings/unix/Nokia/qtcreator/toolchains.xml
index 05a7e5e39b675c23b899dd8170ce8ab58ea0e9f5..a2525c73ac07224f2b6c4965bf85fadf1184619c 100644
--- a/tests/system/settings/unix/Nokia/qtcreator/toolchains.xml
+++ b/tests/system/settings/unix/Nokia/qtcreator/toolchains.xml
@@ -10,6 +10,7 @@
     <value type="QString">x86-linux-generic-elf-64bit</value>
     <value type="QString">x86-linux-generic-elf-32bit</value>
    </valuelist>
+   <value type="QString" key="ProjectExplorer.GccToolChain.TargetAbi">SET_BY_SQUISH</value>
    <value type="bool" key="ProjectExplorer.ToolChain.Autodetect">false</value>
    <value type="QString" key="ProjectExplorer.ToolChain.DisplayName">GCC</value>
    <value type="QString" key="ProjectExplorer.ToolChain.Id">ProjectExplorer.ToolChain.Gcc:{c3f59b87-6997-4bd8-8067-ee04dc536371}</value>
diff --git a/tests/system/shared/qtcreator.py b/tests/system/shared/qtcreator.py
index 1bb7c5d3fcb8b12574632c83eb9df11919ccc843..6ae6dc9cc4eb4eb872eb7007ef3566aac5ef12ad 100644
--- a/tests/system/shared/qtcreator.py
+++ b/tests/system/shared/qtcreator.py
@@ -5,6 +5,7 @@ import glob;
 import atexit;
 import codecs;
 import subprocess;
+import sys
 import errno;
 from datetime import datetime,timedelta;
 
@@ -83,6 +84,69 @@ def substituteTildeWithinToolchains(settingsDir):
     os.remove(origToolchains)
     test.log("Substituted all tildes with '%s' inside toolchains.xml..." % home)
 
+def __guessABI__(supportedABIs, use64Bit):
+    if use64Bit:
+        searchFor = "64bit"
+    else:
+        searchFor = "32bit"
+    for abi in supportedABIs:
+        if searchFor in abi:
+            return abi
+    if use64Bit:
+        test.log("Supported ABIs do not include an ABI supporting 64bit - trying 32bit now")
+        return __guessABI__(supportedABIs, False)
+    test.fatal('Could not guess ABI!',
+               'Given ABIs: %s' % str(supportedABIs))
+    return ''
+
+def __is64BitOS__():
+    if platform.system() == 'Darwin':
+        return sys.maxsize > (2 ** 32)
+    if platform.system() in ('Microsoft', 'Windows'):
+        machine = os.getenv("PROCESSOR_ARCHITEW6432", os.getenv("PROCESSOR_ARCHITECTURE"))
+    else:
+        machine = platform.machine()
+    if machine:
+        return '64' in machine
+    else:
+        return False
+
+def substituteUnchosenTargetABIs(settingsDir):
+    class ReadState:
+        NONE = 0
+        READING = 1
+        CLOSED = 2
+
+    on64Bit = __is64BitOS__()
+    toolchains = os.path.join(settingsDir, "Nokia", 'qtcreator', 'toolchains.xml')
+    origToolchains = toolchains + "_orig"
+    os.rename(toolchains, origToolchains)
+    origFile = open(origToolchains, "r")
+    modifiedFile = open(toolchains, "w")
+    supported = []
+    readState = ReadState.NONE
+    for line in origFile:
+        if readState == ReadState.NONE:
+            if "SupportedAbis" in line:
+                supported = []
+                readState = ReadState.READING
+        elif readState == ReadState.READING:
+            if "</valuelist>" in line:
+                readState = ReadState.CLOSED
+            else:
+                supported.append(line.split(">", 1)[1].rsplit("<", 1)[0])
+        elif readState == ReadState.CLOSED:
+            if "SupportedAbis" in line:
+                supported = []
+                readState = ReadState.READING
+            elif "SET_BY_SQUISH" in line:
+                line = line.replace("SET_BY_SQUISH", __guessABI__(supported, on64Bit))
+        modifiedFile.write(line)
+    origFile.close()
+    modifiedFile.close()
+    os.remove(origToolchains)
+    test.log("Substituted unchosen ABIs inside toolchains.xml...")
+
 if platform.system() in ('Windows', 'Microsoft'):
     sdkPath = "C:\\QtSDK"
     cwd = os.getcwd()       # current dir is directory holding qtcreator.py
@@ -103,5 +167,6 @@ if os.getenv("SYSTEST_NOSETTINGSPATH") != "1":
     shutil.copytree(cwd, tmpSettingsDir)
     if platform.system() in ('Linux', 'Darwin'):
         substituteTildeWithinToolchains(tmpSettingsDir)
+    substituteUnchosenTargetABIs(tmpSettingsDir)
     atexit.register(__removeTmpSettingsDir__)
     SettingsPath = ' -settingspath "%s"' % tmpSettingsDir