diff --git a/js/models/Lattice.js b/js/models/Lattice.js
index 6a76406029810992455c8cf7437230ee1d7165e8..3acecb4ba37fe95b3b74dccf111699bebe5b3d3b 100644
--- a/js/models/Lattice.js
+++ b/js/models/Lattice.js
@@ -36,6 +36,7 @@ Lattice = Backbone.Model.extend({
 
         //bind events
         this.listenTo(this, "change:scale", this._scaleDidChange);
+        this.listenTo(this, "change:gikLength", this._gikLengthDidChange);
         this.listenTo(options.appState, "change:cellMode", this._updateForMode);
         this.listenTo(this, "change:partType", this._updatePartType);
         this.listenTo(this, "change:cellType change:connectionType", this._updateLatticeType);
@@ -369,6 +370,10 @@ Lattice = Backbone.Model.extend({
         dmaGlobals.three.render();
     },
 
+    _gikLengthDidChange: function(){
+        if (this.get("highlighter").updateGikLength) this.get("highlighter").updateGikLength(this.get("scale"));
+    },
+
     previewScaleChange: function(scale){
         this.get("basePlane").updateScale(scale);
     },
diff --git a/js/threeViews/Highlighter.js b/js/threeViews/Highlighter.js
index 2f448669733d4772e9cf23d9ac02432fe339a083..abbda29d50a36c92550257c6eee8403decc8f3a1 100644
--- a/js/threeViews/Highlighter.js
+++ b/js/threeViews/Highlighter.js
@@ -56,6 +56,7 @@ Highlighter = Backbone.View.extend({
         this.highlightedObject = null;
         this.index = null;
         this.direction = null;
+        this.position = null;
         this.hide();
     },
 
@@ -69,6 +70,7 @@ Highlighter = Backbone.View.extend({
 
         var highlightedPos = highlighted.myParent.calcHighlighterPosition(intersection.face, intersection.point);
         this.index = highlightedPos.index;
+        this.position = highlightedPos.position;
         if (!highlightedPos.direction) {//may be hovering over a face that we shouldn't highlight
             this.hide();
             return;
@@ -230,6 +232,13 @@ GIKHighlighter = Highlighter.extend({
             this.mesh.rotation.set(0, 0,0);
             this.mesh.translateX(-this.mesh.scale.x/2+this.mesh.scale.z/2);
         }
+    },
+
+    updateGikLength: function(scale){
+        this.updateScale(scale);
+        this._setPosition(this.position, this.direction);//position of center point
+        this._setRotation(this.direction, this.index);
+        dmaGlobals.three.render();
     }
 });