diff --git a/.project b/.project
index 11e71b2..10e69ad 100644
--- a/.project
+++ b/.project
@@ -30,4 +30,15 @@
org.eclipse.wst.common.modulecore.ModuleCoreNature
org.eclipse.jem.workbench.JavaEMFNature
+
+
+ 1681401982016
+
+ 30
+
+ org.eclipse.core.resources.regexFilterMatcher
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+
+
+
diff --git a/build.number b/build.number
index 19feb37..6a1728e 100644
--- a/build.number
+++ b/build.number
@@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit!
-#Wed Mar 15 13:59:34 CET 2023
-build.number=3
+#Thu Apr 13 18:03:49 CEST 2023
+build.number=4
diff --git a/proparse.assemblies.zip b/proparse.assemblies.zip
index 7165fa1..663363c 100644
Binary files a/proparse.assemblies.zip and b/proparse.assemblies.zip differ
diff --git a/proparse.jar b/proparse.jar
index 909056a..6c0ad77 100644
Binary files a/proparse.jar and b/proparse.jar differ
diff --git a/proparse.java.zip b/proparse.java.zip
index 8eae6e2..c79902f 100644
Binary files a/proparse.java.zip and b/proparse.java.zip differ
diff --git a/proparse.net.dll b/proparse.net.dll
index 614321d..7c2c88d 100644
Binary files a/proparse.net.dll and b/proparse.net.dll differ
diff --git a/src/com/joanju/proparse/Postlexer.java b/src/com/joanju/proparse/Postlexer.java
index 48f913a..a70959f 100644
--- a/src/com/joanju/proparse/Postlexer.java
+++ b/src/com/joanju/proparse/Postlexer.java
@@ -94,6 +94,8 @@ ProToken defined() throws IOException {
throwMessage("Bad DEFINED function in &IF preprocessor condition");
ProToken argToken = lexer.getAmpIfDefArg();
getNextToken();
+ if (currToken.getType() == MAKROREFERENCE)
+ getNextToken();
if (currToken.getType() != RIGHTPAREN)
throwMessage("Bad DEFINED function in &IF preprocessor condition");
return new ProToken(filenameList, NUMBER, prepro.defined(argToken.getText().trim().toLowerCase()));
diff --git a/src/test/SCL4054/TestParseIfDefined.java b/src/test/SCL4054/TestParseIfDefined.java
new file mode 100644
index 0000000..9d34cf5
--- /dev/null
+++ b/src/test/SCL4054/TestParseIfDefined.java
@@ -0,0 +1,33 @@
+package test.SCL4054;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+
+import junit.framework.Assert;
+
+import org.prorefactor.refactor.RefactorException;
+import org.prorefactor.treeparser.ParseUnit;
+
+import test.ProparseTestCase;
+
+public class TestParseIfDefined extends ProparseTestCase {
+
+ public void setUp () throws Exception {
+ super.setUp();
+ }
+
+ public void test () throws RefactorException, IOException {
+ File original;
+ ParseUnit pu;
+ byte[] originalText;
+ byte[] nodeText;
+
+ original = new File ("src/test/SCL4054/testCode.p");
+
+ pu = new ParseUnit (original, "ISO8859-1");
+ Assert.assertNotNull(pu);
+ pu.treeParser01();
+ Assert.assertNotNull(pu.getTopNode());
+ }
+}
diff --git a/src/test/SCL4054/testCode.p b/src/test/SCL4054/testCode.p
new file mode 100644
index 0000000..8b205c5
--- /dev/null
+++ b/src/test/SCL4054/testCode.p
@@ -0,0 +1,21 @@
+/* *************************** Definitions ************************** */
+
+BLOCK-LEVEL ON ERROR UNDO, THROW.
+
+&SCOPED-DEFINE Test 42
+
+&SCOPED-DEFINE Test-42
+
+&IF DEFINED (Test-42) NE 0 &THEN
+MESSAGE "bam"
+ VIEW-AS ALERT-BOX.
+&ENDIF
+
+
+&IF DEFINED (Test-{&Test}) NE 0 &THEN
+MESSAGE "yeah"
+ VIEW-AS ALERT-BOX.
+&ENDIF
+
+MESSAGE "boah"
+ VIEW-AS ALERT-BOX.
\ No newline at end of file