diff --git a/js/lattice/CompositeEditorLattice.js b/js/lattice/CompositeEditorLattice.js
index 0fa5bf3da72b7510d796443f329e1910533e649b..83bd8f57edcb6c5786b0556ce814deaa6551518e 100644
--- a/js/lattice/CompositeEditorLattice.js
+++ b/js/lattice/CompositeEditorLattice.js
@@ -102,10 +102,7 @@ define(['underscore', 'backbone', 'appState', 'globals', 'plist', 'three', 'thre
                 cellsMax: cellsMax,
                 elementaryChildren: materials.getChildCellTypes(this.sparseCells, true),
                 compositeChildren: materials.getChildCellTypes(this.sparseCells, false),
-                dimensions: _dimensions,
-                properties: {
-
-                }
+                dimensions: _dimensions
             };
             return data;
         },
diff --git a/js/materials/DMAMaterials.js b/js/materials/DMAMaterials.js
index 1cfa0213428fe72cb83dcc7a3ce3aa8e9d7cf62d..34ed4c23d1a3ff9794cfe168ff2ab173383d3080 100644
--- a/js/materials/DMAMaterials.js
+++ b/js/materials/DMAMaterials.js
@@ -34,6 +34,8 @@ define(['underscore', 'three', 'appState', 'lattice', 'plist', 'threeModel'], fu
         var edited = false;
         if (materialsList[id].sparseCells) edited = !(_.isEqual(data.sparseCells, materialsList[id].sparseCells));
 
+        if (data.elementaryChildren) data.properties = getPropertiesFromChildren(data.elementaryChildren);
+
         _.each(_.keys(data), function(key){
             if (data[key] && data[key].x) materialsList[id][key] = new THREE.Vector3(data[key].x, data[key].y, data[key].z);
             else materialsList[id][key] = data[key];
@@ -51,6 +53,7 @@ define(['underscore', 'three', 'appState', 'lattice', 'plist', 'threeModel'], fu
 
             lattice.reinitAllCellsOfTypes(allChangedMaterialsList);
         }
+
         return false;
     }
 
@@ -117,6 +120,14 @@ define(['underscore', 'three', 'appState', 'lattice', 'plist', 'threeModel'], fu
         return _.uniq(children);//remove duplicates
     }
 
+    function getPropertiesFromChildren(children){
+        var properties = {};
+        _.each(children, function(child){
+            if (materialsList[child].properties.conductive) properties.conductive = true;
+        });
+        return properties;
+    }
+
     function loopCells(cells, callback){
         for (var x=0;x<cells.length;x++){
             for (var y=0;y<cells[0].length;y++){
diff --git a/js/simulation/electronics/eSimCell.js b/js/simulation/electronics/eSimCell.js
index f2d18e64dd983dd60678a29076368c29b17b0426..2b27dbe2fc071aca18679d509311b007940d09b5 100644
--- a/js/simulation/electronics/eSimCell.js
+++ b/js/simulation/electronics/eSimCell.js
@@ -6,7 +6,8 @@
 define(['cell', 'lattice'], function(DMACell, lattice){
 
     DMACell.prototype.isConductive = function(){
-        return this.getMaterial().properties.conductive;
+        var material = this.getMaterial();
+        return material.properties.conductive;
     };
 
     DMACell.prototype.setConductorGroupNum = function(num, force){