diff --git a/libs/relast.jar b/libs/relast.jar
index b1a7542048dd1611db7f479307b0285efd8bb1f6..f71563319c89f149ab48a7f4d20bc4f663dafe9b 100644
Binary files a/libs/relast.jar and b/libs/relast.jar differ
diff --git a/testDumper/src/main/jastadd/testDumper.relast b/testDumper/src/main/jastadd/testDumper.relast
index b49a389c197d953eb47019e7759300ee94d9aa0e..487953442b55ff19aea891fef0030379afe80412 100644
--- a/testDumper/src/main/jastadd/testDumper.relast
+++ b/testDumper/src/main/jastadd/testDumper.relast
@@ -3,6 +3,7 @@ Root : Nameable ::= A B* [C] ;
 A : Nameable ::= B MyC:C ;
 B : Nameable ::= <OtherValue> ;
 C : Nameable ::= [A] <Unwanted:int> <RawReference:A> /Calculated:A/ /AlsoCalculated:B*/ ;
+SubC : C ::= <RawReference:A> <Unwanted:int> [A] /Calculated:A/ /AlsoCalculated:B*/ ;
 
 rel B.oneA -> A ;
 rel B.maybeC? -> C ;
diff --git a/testDumper/src/test/java/de/tudresden/inf/st/jastadd/testDumper/TestSimple.java b/testDumper/src/test/java/de/tudresden/inf/st/jastadd/testDumper/TestSimple.java
index 9f45108fb7b6eaceb51424605e457d1e3efd052f..f4742747a7040dddd5b775c5a889dabaf4effdad 100644
--- a/testDumper/src/test/java/de/tudresden/inf/st/jastadd/testDumper/TestSimple.java
+++ b/testDumper/src/test/java/de/tudresden/inf/st/jastadd/testDumper/TestSimple.java
@@ -1,14 +1,15 @@
 package de.tudresden.inf.st.jastadd.testDumper;
 
 import de.tudresden.inf.st.jastadd.dumpAst.ast.DumpNode;
+import org.jastadd.testDumper.ast.C;
 import org.jastadd.testDumper.ast.Root;
+import org.jastadd.testDumper.ast.SubC;
 import org.junit.jupiter.api.Test;
 
 import java.util.List;
 
 import static de.tudresden.inf.st.jastadd.testDumper.TestUtils.*;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.tuple;
+import static org.assertj.core.api.Assertions.*;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class TestSimple {
@@ -153,4 +154,22 @@ public class TestSimple {
     assertThatMapOf(referenceTokens(actualC)).containsExactlyInAnyOrder(tuple(TOKEN_LABEL_RAW_REFERENCE, A_NAME));
   }
 
+  @Test
+  public void testChildrenReorder1() {
+    C subC = new SubC();
+    subC.setName(C_NAME);
+    subC.setUnwanted(5);
+    Root root = createRoot(createA(A_NAME), subC, createB(B_NAME));
+
+    List<DumpNode> nodes = TestUtils.dumpModel(root);
+    assertThat(nodes).flatExtracting(NAME_EXTRACTOR).containsExactlyInAnyOrder(ROOT_NAME, A_NAME, B_NAME, C_NAME);
+    DumpNode actualRoot = TestUtils.findByName(nodes, ROOT_NAME);
+    assertEquals(1, actualRoot.getNumDumpToken());
+    assertEquals(3, actualRoot.getNumDumpChildNode());
+    assertEquals(0, actualRoot.getNumDumpRelation());
+    assertThat(valueTokens(findByName(nodes, C_NAME))).containsOnly(
+        entry("Name", C_NAME),
+        entry(TOKEN_LABEL_UNWANTED, 5));
+  }
+
 }