diff --git a/src/Scripting/NasalPositioned.cxx b/src/Scripting/NasalPositioned.cxx
index 95032c388..6a564ee50 100644
--- a/src/Scripting/NasalPositioned.cxx
+++ b/src/Scripting/NasalPositioned.cxx
@@ -2445,6 +2445,15 @@ static naRef f_flightplan_indexOfWp(naContext c, naRef me, int argc, naRef* args
     return naNum(fp->findWayptIndex(positioned));
   }
   
+  FlightPlan::Leg* leg = fpLegGhost(args[0]);
+  if (leg) {
+    if (leg->owner() == fp) {
+      return naNum(leg->index());
+    }
+    
+    naRuntimeError(c, "flightplan.indexOfWP called on leg from different flightplan");
+  }
+
   SGGeod pos;
   int argOffset = geodFromArgs(args, 0, argc, pos);
   if (argOffset > 0) {