diff --git a/src/plugins/projectexplorer/abi.cpp b/src/plugins/projectexplorer/abi.cpp
index 0697ce28c57b613731f63ae58117cf93cca2dc5f..fd5c7a3d9f207eb74c3057b69b7e41e3386bd68b 100644
--- a/src/plugins/projectexplorer/abi.cpp
+++ b/src/plugins/projectexplorer/abi.cpp
@@ -34,6 +34,7 @@
 
 #include <QtCore/QCoreApplication>
 #include <QtCore/QDebug>
+#include <QtCore/QtEndian>
 #include <QtCore/QFile>
 #include <QtCore/QString>
 #include <QtCore/QStringList>
@@ -134,7 +135,10 @@ static QList<Abi> abiOf(const QByteArray &data)
             && static_cast<unsigned char>(data.at(0)) == 0x7f && static_cast<unsigned char>(data.at(1)) == 'E'
             && static_cast<unsigned char>(data.at(2)) == 'L' && static_cast<unsigned char>(data.at(3)) == 'F') {
         // ELF format:
+        bool isLsbEncoded = (static_cast<quint8>(data.at(5)) == 1);
         quint16 machine = (data.at(19) << 8) + data.at(18);
+        if (!isLsbEncoded)
+            machine = qFromBigEndian(machine);
         quint8 osAbi = static_cast<quint8>(data.at(7));
 
         Abi::OS os = Abi::UnixOS;