diff --git a/js/cells/DMACell.js b/js/cells/DMACell.js
index 1cc4227f456ce46f6206d6530a8f9a023b48033c..1b4989c5f1a0a9bef294634b25b07a8c971cac3b 100644
--- a/js/cells/DMACell.js
+++ b/js/cells/DMACell.js
@@ -153,6 +153,10 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'globals'],
     };
 
     DMACell.prototype.setDeleteMode = function(state){
+        if (this.superCell) {
+            this.superCell.setDeleteMode(state);
+            return;
+        }
         var material;
         if (state) material = globals.materials.deleteMaterial;
         else  material = this.getMaterial();
@@ -162,6 +166,11 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'globals'],
         three.render();
     };
 
+    DMACell.prototype.getParent = function(){
+        if (this.superCell) return this.superCell.getParent();
+        return this;
+    };
+
 
 
 
@@ -327,10 +336,8 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'globals'],
         this.destroyParts();
         if (this.object3D) {
             if (this.superCell) this.superCell.removeChildren(this.object3D);
-            else if (this.index) {
-                three.sceneRemove(this.object3D);
-                if (!this.cells) lattice.getUItarget().removeHighlightableCell(this.object3D.children[0]);//remove mesh as highlightable object
-            }
+            else if (this.index) three.sceneRemove(this.object3D);
+            if (!this.cells) lattice.getUItarget().removeHighlightableCell(this.object3D.children[0]);//remove mesh as highlightable object
             this.object3D.myParent = null;
     //            this.object3D.dispose();
     //            geometry.dispose();
diff --git a/js/cells/supercells/DMASuperCell.js b/js/cells/supercells/DMASuperCell.js
index 3cf1bb4066ec61dc8ddcaac24f5aa96a687d2fbb..0d8c7fa0ce2fa37c23c83fae359e31aa25251edd 100644
--- a/js/cells/supercells/DMASuperCell.js
+++ b/js/cells/supercells/DMASuperCell.js
@@ -98,10 +98,13 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'cell'],
 
     DMASuperCell.prototype.destroy = function(){
         this._iterCells(function(cell){
-            if (cell) cell.destroy();
+            if (cell) {
+                cell.destroy();
+                cell = null;
+            }
         });
-        this.cells = null;
         DMACell.prototype.destroy.call(this);
+        this.cells = null;
     };
 
     DMASuperCell.prototype.destroyParts = function(){
diff --git a/js/highlighter/Highlighter.js b/js/highlighter/Highlighter.js
index c6595e3355952ab162975195577ec022dda5a929..884b5b524b11a47c4fbafc814c8e11258addb652 100644
--- a/js/highlighter/Highlighter.js
+++ b/js/highlighter/Highlighter.js
@@ -86,6 +86,7 @@ define(['underscore', 'backbone', 'threeModel', 'appState', 'lattice', 'cell', '
             var highlighted = intersection.object.parent;//cell mesh parent is object3d
             if (!highlighted.myParent) {//myParent is cell instance
                 console.warn("no parent for highlighted object");
+                console.warn(highlighted);
                 return;
             }
 
@@ -159,7 +160,7 @@ define(['underscore', 'backbone', 'threeModel', 'appState', 'lattice', 'cell', '
             } else {
                 if (!this.highlightedObject) return;
                 if (!(this.highlightedObject instanceof DMACell)) return;
-                lattice.getUItarget().removeCell(this.highlightedObject);
+                lattice.getUItarget().removeCell(this.highlightedObject.getParent());
             }
             this.setNothingHighlighted();
         },
diff --git a/js/lattice/LatticeBase.js b/js/lattice/LatticeBase.js
index 5b2c8e29beeee457bc8afb12ece28cb8ed64c324..c7d38bb489dcb8bdca16efe0fdc7513f3adcba27 100644
--- a/js/lattice/LatticeBase.js
+++ b/js/lattice/LatticeBase.js
@@ -156,6 +156,7 @@ define(['underscore', 'backbone', 'appState', 'globals', 'plist', 'three', 'thre
     //    },
 
         removeCell: function(cell){
+
             if (!cell) return;
             var index = (new THREE.Vector3()).subVectors(cell.index, this.get("cellsMin"));
             cell.destroy();