diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java
index 247453556b083223d2be67ee0988a309db47dea4..9897735de5cfc5ffaa43123b20eeb70f84616ef8 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java
@@ -189,7 +189,6 @@ public class SbmlExporter {
 
   private Map<Class<?>, MultiSpeciesType> speciesTypeByClass = new HashMap<>();
 
-  @SuppressWarnings("unchecked")
   protected MultiModelPlugin createSbmlMultiPlugin(Model result) {
     MultiModelPlugin multiPlugin = new MultiModelPlugin(result);
     result.addExtension("multi", multiPlugin);
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java
index dd6773fba2eff1313261d53372f032de7e200162..04e566a37f31ae43e4bef280bc642d2ac2cc6d77 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java
@@ -159,7 +159,20 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j
     if (element.getComplex() != null) {
       complexName = element.getComplex().getName();
     }
-    return element.getClass().getSimpleName() + "\n" + element.getName() + "\n" + compartmentName + "\n" + complexName;
+    String multiDistinguisher = null;
+
+    if (isExtensionEnabled(SbmlExtension.MULTI)) {
+      String structuralState = null;
+      if (element instanceof Protein) {
+        structuralState = ((Protein) element).getStructuralState();
+      } else if (element instanceof Complex) {
+        structuralState = ((Complex) element).getStructuralState();
+      }
+      multiDistinguisher = structuralState;
+    }
+    String result =element.getClass().getSimpleName() + "\n" + element.getName() + "\n" + compartmentName + "\n" + complexName
+        + "\n" + multiDistinguisher;
+    return result;
   }
 
   protected LocalStyle createStyle(Species element) {
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporterTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporterTest.java
index 36b459def474ea5cbe0e122c85fefe04fdec45f7..918231660e7b3cb5c78cf36877f51fcd868263cc 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporterTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporterTest.java
@@ -1,13 +1,14 @@
 package lcsb.mapviewer.converter.model.sbml.species;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 
 import java.util.Arrays;
+import java.util.Collection;
 
 import org.apache.log4j.Logger;
 import org.junit.Test;
 import org.sbml.jsbml.SBMLDocument;
-import org.sbml.jsbml.ext.layout.Layout;
 
 import lcsb.mapviewer.converter.model.sbml.SbmlExporter;
 import lcsb.mapviewer.converter.model.sbml.SbmlExtension;
@@ -18,15 +19,14 @@ import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.model.ModelFullIndexed;
 import lcsb.mapviewer.model.map.species.Element;
 import lcsb.mapviewer.model.map.species.GenericProtein;
+import lcsb.mapviewer.model.map.species.Protein;
+import lcsb.mapviewer.model.map.species.Species;
 
 public class SbmlSpeciesExporterTest {
 
   Logger logger = Logger.getLogger(SbmlSpeciesExporterTest.class);
 
-  SbmlCompartmentExporter compartmentExporter;
-
   org.sbml.jsbml.Model sbmlModel;
-  Layout sbmlLayout;
 
   @Test
   public void testOneElementWithTwoAliases() throws InconsistentModelException {
@@ -68,19 +68,39 @@ public class SbmlSpeciesExporterTest {
   }
 
   private SbmlSpeciesExporter createExporter(Model model) throws InconsistentModelException {
+    return createExporter(model, Arrays.asList(new SbmlExtension[] { SbmlExtension.RENDER, SbmlExtension.LAYOUT }));
+  }
+
+  private SbmlSpeciesExporter createExporter(Model model, Collection<SbmlExtension> sbmlExtensions)
+      throws InconsistentModelException {
     SBMLDocument doc = new SBMLDocument(3, 1);
     sbmlModel = doc.createModel(model.getIdModel());
 
     SbmlExporter sbmlExporter = new SbmlExporter();
-    sbmlLayout = sbmlExporter.createSbmlLayout(model, sbmlModel);
+    sbmlExporter.createSbmlLayout(model, sbmlModel);
 
     SbmlCompartmentExporter compartmentExporter = new SbmlCompartmentExporter(sbmlModel, model,
         Arrays.asList(SbmlExtension.values()));
     compartmentExporter.exportElements();
-    SbmlSpeciesExporter result = new SbmlSpeciesExporter(sbmlModel, model,
-        Arrays.asList(new SbmlExtension[] { SbmlExtension.RENDER, SbmlExtension.LAYOUT }),
-        compartmentExporter);
+
+    SbmlSpeciesExporter result = new SbmlSpeciesExporter(sbmlModel, model, sbmlExtensions, compartmentExporter);
     return result;
   }
 
+  @Test
+  public void testIdsOfSpeciesWithStructuralStates() throws InconsistentModelException {
+    Species protein1 = new GenericProtein("sa1");
+    protein1.setName("SNCA");
+    Protein protein2 = new GenericProtein("sa2");
+    protein2.setName("SNCA");
+    protein2.setStructuralState("X");
+    Model model = new ModelFullIndexed(null);
+    model.addElement(protein1);
+    model.addElement(protein2);
+
+    SbmlSpeciesExporter exporter = createExporter(model, Arrays.asList(SbmlExtension.values()));
+
+    assertFalse(exporter.getSbmlIdKey(protein1).equals(exporter.getSbmlIdKey(protein2)));
+  }
+
 }