diff --git a/src/data/java/de/tudresden/inf/st/pnml/base/util/NavUtils.java b/src/data/java/de/tudresden/inf/st/pnml/base/util/NavUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..b1334c5bfe3b43c20c2472900f79f844d1a0d300
--- /dev/null
+++ b/src/data/java/de/tudresden/inf/st/pnml/base/util/NavUtils.java
@@ -0,0 +1,16 @@
+package de.tudresden.inf.st.pnml.base.util;
+
+import de.tudresden.inf.st.pnml.jastadd.model.Node;
+import de.tudresden.inf.st.pnml.jastadd.model.Place;
+
+public class NavUtils {
+
+    public static Place getOriginPlace(Node p){
+
+        if(p.asRefPlace() != null){
+            return p.asPlaceNode().place();
+        } else {
+            return getOriginPlace(p);
+        }
+    }
+}
diff --git a/src/main/jastadd/base/Navigation.jrag b/src/main/jastadd/base/Navigation.jrag
index 0af771b0159a071fb2f627a03f850234cd238af0..8aeef669794c60c55e96ed94a0ac9dfc849bdf55 100644
--- a/src/main/jastadd/base/Navigation.jrag
+++ b/src/main/jastadd/base/Navigation.jrag
@@ -2,6 +2,10 @@ aspect Navigation {
   inh PetriNet PnObject.petriNet();
   eq PetriNet.getChild().petriNet() = this;
 
+  syn Place RefPlace.originPlace(){
+      return de.tudresden.inf.st.pnml.base.util.NavUtils.getOriginPlace(this);
+  }
+
   syn java.util.Collection<Place> TransitionNode.incomingPlaces() {
 
       java.util.Set<Place> s = new java.util.HashSet<>();