diff --git a/src/engine/objects/PlayerCharacter.java b/src/engine/objects/PlayerCharacter.java
index 2b25e3c8..2389ee68 100644
--- a/src/engine/objects/PlayerCharacter.java
+++ b/src/engine/objects/PlayerCharacter.java
@@ -5362,12 +5362,12 @@ public class PlayerCharacter extends AbstractCharacter {
         if (this.isAlive() == false || this.getBonuses().getBool(ModType.Stunned, SourceType.None) || this.getBonuses().getBool(ModType.CannotMove, SourceType.None)) {
             //Target is stunned or rooted. Don't move
             this.stopMovement(newLoc);
-            this.region = AbstractWorldObject.GetRegionByWorldObject(this);
+            this.region = Regions.GetRegionForTeleport(newLoc);//AbstractWorldObject.GetRegionByWorldObject(this);
             return;
         }
         if (newLoc.equals(this.getEndLoc())) {
             this.stopMovement(newLoc);
-            this.region = AbstractWorldObject.GetRegionByWorldObject(this);
+            this.region = Regions.GetRegionForTeleport(newLoc);//AbstractWorldObject.GetRegionByWorldObject(this);
             if (this.getDebug(1))
                 ChatManager.chatSystemInfo(this,
                         "Arrived at End location. " + this.getEndLoc());
@@ -5555,7 +5555,7 @@ public class PlayerCharacter extends AbstractCharacter {
         //mhm.setOmitFromChat(0);
         Dispatch dispatch = Dispatch.borrow(this, modifyHealthMsg);
         DispatchMessage.dispatchMsgDispatch(dispatch, DispatchChannel.PRIMARY);
-
+        this.setDirtyLoad(true);
     }
 
     public MovementState getMovementState() {