diff --git a/src/tools/moc/main.cpp b/src/tools/moc/main.cpp
index 1cb383c9..6bfdee55 100644
--- a/src/tools/moc/main.cpp
+++ b/src/tools/moc/main.cpp
@@ -230,6 +230,11 @@ int runMoc(int argc, char **argv)
     Moc moc;
     pp.macros["Q_MOC_RUN"];
     pp.macros["__cplusplus"];
+    pp.macros["_SYS_SYSMACROS_H_OUTER"];
+    Macro macro;
+    macro.symbols = Preprocessor::tokenize(QByteArray::number(Q_PROCESSOR_WORDSIZE*8), 1, Preprocessor::TokenizeDefine);
+    macro.symbols.removeLast(); // remove the EOF symbol
+    pp.macros.insert("__WORDSIZE", macro);
 
     // Don't stumble over GCC extensions
     Macro dummyVariadicFunctionMacro;
