diff --git a/src/main/jastadd/AddEmptyDeclaration.jrag b/src/main/jastadd/AddEmptyDeclaration.jrag
index ef477bd61cc82be6019b1ac208b5b6db312e0a81..1e0ffa83f8daebd5061bf0df8d3fff707219cc31 100644
--- a/src/main/jastadd/AddEmptyDeclaration.jrag
+++ b/src/main/jastadd/AddEmptyDeclaration.jrag
@@ -1,18 +1,12 @@
 aspect AddEmptyDeclaration {
-  syn GrammarFile GrammarFile.addEmptyDecl() {
+  public GrammarFile GrammarFile.addEmptyDecl() {
 
     Declaration emptyDecl = new EmptyDeclaration();
     SingleLineComment slc = new SingleLineComment();
-    slc.setText("// DO NOT EDIT. Automatically generated using RoleAST.jar");
+    slc.setText("// DO NOT EDIT. Automatically generated using RoleAST.jar\n");
     emptyDecl.addComment(slc);
 
-    JastAddList declList = new JastAddList();
-    declList.add(emptyDecl);
-    for (Declaration decl : this.getDeclarationList()) {
-      declList.add(decl);
-    }
-
-    this.setDeclarationList(declList);
+    this.getDeclarationList().insertChild(emptyDecl, 0);
 
     //this.addDeclaration(emptyDecl);
     return this;
diff --git a/src/main/java/org/jastadd/preprocessor/Main.java b/src/main/java/org/jastadd/preprocessor/Main.java
index 66005eb99cec83a048ab953474f81a799f7132c5..da34a4ad1e971c84bfb2a4c8dec6f10ea77b23dd 100644
--- a/src/main/java/org/jastadd/preprocessor/Main.java
+++ b/src/main/java/org/jastadd/preprocessor/Main.java
@@ -109,7 +109,8 @@ public class Main extends org.jastadd.relast.compiler.RelAstProcessor {
       printMessage("Writing output file " + grammarFile.getFileName());
       // TODO decide and document what the file name should be, the full path or a simple name?
       grammarFile.addEmptyDecl();
-      writeToFile(outputBasePath.resolve(inputBasePath.relativize(Paths.get(grammarFile.getFileName()))), grammarFile.generateAbstractGrammar());
+      System.out.println(grammarFile.getFileName());
+      writeToFile(outputBasePath.resolve(grammarFile.getFileName()), grammarFile.generateAbstractGrammar());
     }