diff --git a/src/meshTools/AMIInterpolation/patches/cyclic/cyclicAMIPolyPatch/cyclicAMIPolyPatch.C b/src/meshTools/AMIInterpolation/patches/cyclic/cyclicAMIPolyPatch/cyclicAMIPolyPatch.C
index 49ba94fda2f1056ee02516d5bb985f7bba0778cf..1d37199cd3b6087ba6e97f08d3ff3b45e7e99b56 100644
--- a/src/meshTools/AMIInterpolation/patches/cyclic/cyclicAMIPolyPatch/cyclicAMIPolyPatch.C
+++ b/src/meshTools/AMIInterpolation/patches/cyclic/cyclicAMIPolyPatch/cyclicAMIPolyPatch.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -239,7 +239,11 @@ void Foam::cyclicAMIPolyPatch::resetAMI() const
         AMIPtr_.clear();
 
         const polyPatch& nbr = neighbPatch();
-        pointField nbrPoints = neighbPatch().localPoints();
+        pointField nbrPoints
+        (
+            neighbPatch().boundaryMesh().mesh().points(),
+            neighbPatch().meshPoints()
+        );
 
         if (debug)
         {
@@ -326,6 +330,9 @@ void Foam::cyclicAMIPolyPatch::initMovePoints
 )
 {
     polyPatch::initMovePoints(pBufs, p);
+
+    // See below. Clear out any local geometry
+    primitivePatch::movePoints(p);
 }
 
 
@@ -339,6 +346,10 @@ void Foam::cyclicAMIPolyPatch::movePoints
 
     calcTransforms();
 
+    // Note: resetAMI is called whilst in geometry update. So the slave
+    // side might not have reached 'movePoints'. Is explicitly handled by
+    // - clearing geometry of neighbour inside initMovePoints
+    // - not using localPoints() inside resetAMI
     resetAMI();
 }