diff --git a/CHANGELOG b/CHANGELOG
index 27846d35f885565812fe10b3aaa33fdf41a86b97..6cc7604fddcab7277a2b77bf0a25b625282b1d74 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,9 @@
+minerva (18.1.1) stable; urgency=medium
+  * Bug fix: SBGN-ML import/export should not use compartmentOrder for
+    non-compartment entities (#2193)
+
+ -- Piotr Gawron <piotr.gawron@uni.lu>  Tue, 04 Feb 2025 16:00:00 +0200
+
 minerva (18.1.0) stable; urgency=medium
   * Small improvement: SBGN-ML import/export is processing notes (#2192)
   * Small improvement: SBGN-ML import/export is processing compartmentOrder
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 cc94a4a40b40b103077dbb88e81537b87987dedd..62c8aadb932f260acf9db8c0c97e42e31856968f 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
@@ -274,9 +274,6 @@ public class SbgnmlXmlExporter {
     newGlyph.setClazz(getGlyphClazzFromElement(element).getClazz());
     newGlyph.setLabel(getGlyphLabelFromAlias(element));
     newGlyph.setNotes(notesConverter.createNotesNode(element.getNotes()));
-    if (element.getZ() != null) {
-      newGlyph.setCompartmentOrder(element.getZ().floatValue());
-    }
 
     final Bbox bbox = new Bbox();
     bbox.setX(element.getX().floatValue());
@@ -285,7 +282,11 @@ public class SbgnmlXmlExporter {
     bbox.setH(element.getHeight().floatValue());
     newGlyph.setBbox(bbox);
 
-    if (element instanceof Species) {
+    if (element instanceof Compartment) {
+      if (element.getZ() != null) {
+        newGlyph.setCompartmentOrder(element.getZ().floatValue());
+      }
+    } else if (element instanceof Species) {
       final Species species = (Species) element;
       if (element instanceof Protein) {
         final Protein protein = (Protein) element;
diff --git a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlTestFunctions.java b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlTestFunctions.java
index 4f90c7ec36fa85c0a802e3dfd803d7f6b74e114a..a834093676e7c6a36902ee96489cda16f7cefd28 100644
--- a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlTestFunctions.java
+++ b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlTestFunctions.java
@@ -141,12 +141,12 @@ public class SbgnmlTestFunctions extends TestUtils {
     model2.setIdModel(model.getIdModel());
     model2.setName(model.getName());
     for (final Drawable d : model.getDrawables()) {
-      if (!(d instanceof Element)) {
+      if (!(d instanceof Compartment)) {
         d.setZ(null);
       }
     }
     for (final Drawable d : model2.getDrawables()) {
-      if (!(d instanceof Element)) {
+      if (!(d instanceof Compartment)) {
         d.setZ(null);
       }
     }
diff --git a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporterTest.java b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporterTest.java
index 2f1143c6a905602ad53f1d11d94b48339b0fab1b..34655cfe5df8cc06dfee66b6c0759707eb78eb81 100644
--- a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporterTest.java
+++ b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporterTest.java
@@ -175,17 +175,12 @@ public class SbgnmlXmlExporterTest extends SbgnmlTestFunctions {
 
   @Test
   public void importExportZ() throws Exception {
-    GenericProtein protein = createProtein();
-    protein.setZ(3);
-
     Compartment compartment = createCompartment();
     compartment.setZ(4);
-    compartment.addElement(protein);
 
     Model model = new ModelFullIndexed(null);
     model.setWidth(2000);
     model.setHeight(2000);
-    model.addElement(protein);
     model.addElement(compartment);
 
     Model model2 = serializeAndCleanOverSbgn(model);