diff --git a/src/main/java/attacktrees/AttackNode.java b/src/main/java/attacktrees/AttackNode.java
index 07437a98e7b33c55fb1f280dd3df14f419d03539..7aa7a2bd0bd49a6bfe9aeeb5645aab6e3b2d4e53 100644
--- a/src/main/java/attacktrees/AttackNode.java
+++ b/src/main/java/attacktrees/AttackNode.java
@@ -90,6 +90,7 @@ public abstract class AttackNode extends AttackElement {
     public ArrayList<Attack> getInputAttacks() {
         return inputAttacks;
     }
+
     public ArrayList<Integer> getInputValues() {
         return inputValues;
     }
diff --git a/src/main/java/ui/AttackTreePanelTranslator.java b/src/main/java/ui/AttackTreePanelTranslator.java
index 44d9cb4e35ac36d387a1af054dc918e7b6abc766..4692cadc249c9ec381f4547745ce75cc10ac2b65 100644
--- a/src/main/java/ui/AttackTreePanelTranslator.java
+++ b/src/main/java/ui/AttackTreePanelTranslator.java
@@ -41,10 +41,11 @@ package ui;
 
 import attacktrees.*;
 import avatartranslator.*;
-import myutil.TraceManager;
 import translator.CheckingError;
 import ui.atd.*;
 
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -111,31 +112,28 @@ public class AttackTreePanelTranslator {
     }
 
     public AttackTree translateToAttackTreeDataStructure() {
-
-
         at = new AttackTree("AttackTree", atp);
 
         if (panel == null) {
             panel = (AttackTreeDiagramPanel)(atp.panels.get(index));
         }
 
-        at = new AttackTree("AttackTree", panel);
         if (panel != null) {
-            at = new AttackTree("AttackTree", atp);
+            at = new AttackTree("AttackTree", panel);
             translate(panel);
             boolean b = at.checkSyntax();
+
             if (!b) {
                 UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, at.errorOfFaultyElement);
                 ce.setTGComponent((TGComponent) (at.faultyElement.getReferenceObject()));
                 ce.setTDiagramPanel(panel);
                 addCheckingError(ce);
             }
-        }
 
+            fixOrdering();
+        }
 
-        //TraceManager.addDev("AT=" + at.toString());
         return at;
-
     }
 
     public void translate(AttackTreeDiagramPanel atdp) {
@@ -373,9 +371,22 @@ public class AttackTreePanelTranslator {
                 }
             }
         }
-
     }
 
+    private void fixOrdering() {
+        for (AttackNode operator : at.getAttackNodes()) {
+            ArrayList<Attack> attacks = operator.getInputAttacks();
+            ArrayList<Integer> inputValues = operator.getInputValues();
+
+            if (attacks != null && !attacks.isEmpty()) {
+                Collections.reverse(attacks);
+            }
+
+            if (inputValues != null && !inputValues.isEmpty()) {
+                Collections.reverse(inputValues);
+            }
+        }
+    }
 
     public AvatarSpecification generateAvatarSpec() {
         AvatarSpecification as = new AvatarSpecification("spec from attack trees", atp);