diff --git a/libacc/acc.cpp b/libacc/acc.cpp
index 475e308..483a1ac 100644
--- a/libacc/acc.cpp
+++ b/libacc/acc.cpp
@@ -3292,6 +3292,7 @@
     intptr_t loc; // local variable index
     char* glo;  // global variable index
     String mTokenString;
+    bool mbSuppressMacroExpansion;
     char* dptr; // Macro state: Points to macro text during macro playback.
     int dch;    // Macro state: Saves old value of ch during a macro playback.
     char* pGlobalBase;
@@ -3726,14 +3727,16 @@
                 inp();
             }
             tok = mTokenTable.intern(mTokenString.getUnwrapped(), mTokenString.len());
-            // Is this a macro?
-            char* pMacroDefinition = mTokenTable[tok].mpMacroDefinition;
-            if (pMacroDefinition) {
-                // Yes, it is a macro
-                dptr = pMacroDefinition;
-                dch = ch;
-                inp();
-                next();
+            if (! mbSuppressMacroExpansion) {
+                // Is this a macro?
+                char* pMacroDefinition = mTokenTable[tok].mpMacroDefinition;
+                if (pMacroDefinition) {
+                    // Yes, it is a macro
+                    dptr = pMacroDefinition;
+                    dch = ch;
+                    inp();
+                    next();
+                }
             }
         } else {
             inp();
@@ -3809,7 +3812,9 @@
     }
 
     void doDefine() {
+        mbSuppressMacroExpansion = true;
         next();
+        mbSuppressMacroExpansion = false;
         tokenid_t name = tok;
         String* pName = new String();
         if (ch == '(') {
@@ -4957,6 +4962,7 @@
         mCompileResult = 0;
         mLineNumber = 1;
         mbBumpLine = false;
+        mbSuppressMacroExpansion = false;
     }
 
     void setArchitecture(const char* architecture) {
diff --git a/libacc/tests/data/defines.c b/libacc/tests/data/defines.c
index 840917d..6cb6f7e 100644
--- a/libacc/tests/data/defines.c
+++ b/libacc/tests/data/defines.c
@@ -1,5 +1,6 @@
 // Simple tests of the C preprocessor
 
+#define A 1
 #define A (4 / 2)
 #define B 1 // This is a comment. With a / in it.
 
