diff --git a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporter.java b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporter.java
index 824664c47bf60a26260478a83d715b41da639ebe..1b536d4ee9b56c9bcd04995456abea94c3786bcb 100644
--- a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporter.java
+++ b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporter.java
@@ -161,11 +161,14 @@ public class SbgnmlXmlExporter {
     map.setLanguage(Language.PD.getName());
     Sbgn sbgnData = new Sbgn();
 
-    List<Species> aliases = model.getSpeciesList();
-
-    for (Species a : aliases) {
-      if (a.getComplex() == null) {
-        Glyph newGlyph = aliasToGlyph(a);
+    for (Element element : model.getElements()) {
+      if (element instanceof Species) {
+        if (((Species) element).getComplex() == null) {
+          Glyph newGlyph = aliasToGlyph(element);
+          map.getGlyph().add(newGlyph);
+        }
+      } else if (element instanceof Compartment) {
+        Glyph newGlyph = aliasToGlyph(element);
         map.getGlyph().add(newGlyph);
       }
     }
diff --git a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/CellDesignerToSbgnTest.java b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/CellDesignerToSbgnTest.java
index edaea41e34792f4c29faf897c4885f094b761898..05fca1f6c7d59c5ad2d8092ced751872bb0ab45e 100644
--- a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/CellDesignerToSbgnTest.java
+++ b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/CellDesignerToSbgnTest.java
@@ -14,10 +14,14 @@ import org.junit.Test;
 import lcsb.mapviewer.converter.ConverterParams;
 import lcsb.mapviewer.converter.IConverter;
 import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser;
+import lcsb.mapviewer.model.map.compartment.Compartment;
 import lcsb.mapviewer.model.map.model.Model;
+import lcsb.mapviewer.model.map.species.Element;
+import lcsb.mapviewer.modelutils.map.ElementUtils;
 
 public class CellDesignerToSbgnTest {
   Logger logger = Logger.getLogger(CellDesignerToSbgnTest.class);
+  ElementUtils eu = new ElementUtils();
 
   @Before
   public void setUp() throws Exception {
@@ -70,4 +74,37 @@ public class CellDesignerToSbgnTest {
     }
   }
 
+  @Test
+  public void testCompartmentsExport() throws Exception {
+    try {
+      IConverter converter = new CellDesignerXmlParser();
+      IConverter converter2 = new SbgnmlXmlConverter();
+
+      Model model = converter.createModel(new ConverterParams().filename("testFiles/cellDesigner/neuron.xml"));
+
+      String output = File.createTempFile("temp-sbgn-output", ".sbgn").getAbsolutePath();
+      converter2.exportModelToFile(model, output);
+
+      converter2.createModel(new ConverterParams().filename(output));
+
+      String fileContent;
+      try (FileInputStream inputStream = new FileInputStream(output)) {
+        fileContent = IOUtils.toString(inputStream, "UTF-8");
+      }
+
+      for (Element element : model.getElements()) {
+        if (element instanceof Compartment) {
+          assertTrue(eu.getElementTag(element) + " comparmtent is not exported",
+              fileContent.contains(element.getElementId()));
+        }
+      }
+
+      new File(output).delete();
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+
+  }
+
 }