diff --git a/js/cells/DMACell.js b/js/cells/DMACell.js
index ffbc741705d0b023d1ed506bb4ff71d05f7aebc7..be05c6dfc59abd64db87146e21dde0e347c4d846 100644
--- a/js/cells/DMACell.js
+++ b/js/cells/DMACell.js
@@ -156,12 +156,11 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'globals', '
     };
 
     DMACell.prototype.setDeleteMode = function(state){
-        var material;
+        var threeMaterial;
         if (!state && !this.material) return;//cell may be deleted by now
-        if (state) material = materials.getDeleteMaterial();
-        else  material = this.getMaterial(true);
-        if (!material) return;//no material object found
-        if (this.object3D.children[0].material == material) return;
+        if (state) threeMaterial = materials.getDeleteMaterial();
+        else  threeMaterial = this.getMaterial(true);
+        if (!threeMaterial) return;//no material object found
 
         if (this.cells){
             this._loopCells(function(cell){
@@ -170,10 +169,10 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'globals', '
         }
         if (this.parts){
             _.each(this.parts, function(part){
-                if (part) part.setMaterial(material);
+                if (part) part.setMaterial(threeMaterial);
             });
         }
-        this.setMaterial(material);
+        this._setTHREEMaterial(threeMaterial);
     };
 
     DMACell.prototype.getParent = function(){
@@ -229,7 +228,11 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'globals', '
 
     DMACell.prototype.setMaterial = function(material){
         this.material = material;
-        this.object3D.children[0].material = this.getMaterial(true);
+        this._setTHREEMaterial(this.getMaterial(true));
+    };
+
+    DMACell.prototype._setTHREEMaterial = function(threeMaterial){
+        this.object3D.children[0].material = threeMaterial;
     };
 
     DMACell.prototype.getMaterial = function(returnTHREEObject){
diff --git a/js/materials/DMAMaterial.js b/js/materials/DMAMaterial.js
index a2b90abe5829b91e987f85905b0c2e87261415c2..ae23b7f9d4fd2ef03ca8c74510517288b18e7152 100644
--- a/js/materials/DMAMaterial.js
+++ b/js/materials/DMAMaterial.js
@@ -16,15 +16,16 @@ define(['underscore', 'appState'], function(_, appState){
 
     DMAMaterial.prototype.set = function(data){
 
+        //check if colors have changed
+        var oldColor = this.color;
+        var oldAltColor = this.altColor;
+
         var self = this;
         _.each(_.keys(data), function(key){
             if (data[key] && data[key].x) self[key] = new THREE.Vector3(data[key].x, data[key].y, data[key].z);
             else self[key] = data[key];
         });
 
-        //check if colors have changed
-        var oldColor = this.color;
-        var oldAltColor = this.altColor;
         if (!this.threeMaterial ||
             (data.color && oldColor != data.color) ||
             (data.altColor && oldAltColor != data.altColor)) this.changeColorScheme();//don't need to set edited flag for this, render will handle it
diff --git a/js/materials/DMAMaterials.js b/js/materials/DMAMaterials.js
index 50e86911365f9f09315ca68e1412db091180510f..76a0d5bbef0a9d6c7c3939e8f807a73eb4ca20d9 100644
--- a/js/materials/DMAMaterials.js
+++ b/js/materials/DMAMaterials.js
@@ -11,7 +11,7 @@ define(['underscore', 'three', 'appState', 'lattice', 'plist', 'threeModel', 'ma
             color: "#ff0000",
             altColor: "#ff0000",
             noDelete: true
-        })
+        }, "deleteMaterial")
     };
 
 
@@ -72,7 +72,7 @@ define(['underscore', 'three', 'appState', 'lattice', 'plist', 'threeModel', 'ma
 
         var edited = false;
         if (!material) {
-            materialsList[id] = new DMAMaterial(data);
+            materialsList[id] = new DMAMaterial(data, id);
             return;
         } else {
             if (data.elementaryChildren) data.properties = getPropertiesFromChildren(data.elementaryChildren);
@@ -109,7 +109,7 @@ define(['underscore', 'three', 'appState', 'lattice', 'plist', 'threeModel', 'ma
     }
 
     function getDeleteMaterial(){
-        return materialsList.deleteMaterial.getThreeMaterial("deleteMaterial");
+        return materialsList.deleteMaterial.threeMaterial;
     }
 
 
@@ -207,7 +207,7 @@ define(['underscore', 'three', 'appState', 'lattice', 'plist', 'threeModel', 'ma
         var newMaterials = {};
         _.each(definitions, function(data, key){
             data.noDelete = true;
-            newMaterials[key] = new DMAMaterial(data);
+            newMaterials[key] = new DMAMaterial(data, key);
         });
         return newMaterials;
     }