diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ModelContructor.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ModelContructor.java
index a051eda38e15fbbb919689dce992d662a39aa720..f340ba5f5b221059b2bc5e756260f88d17fa5ff3 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ModelContructor.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ModelContructor.java
@@ -983,15 +983,17 @@ public class ModelContructor {
    * {@link Compartment} into a proper compartment.
    * 
    * @param model
-   *          model where aliases will be modifed
+   *          model where aliases will be modified
    */
   private void putAliasesIntoCompartments(Model model) {
-    for (Element alias : model.getElements()) {
-      if (alias.getCompartment() == null) {
-        if (alias instanceof Species) {
+    for (Element element : model.getElements()) {
+      if (element instanceof Species) {
+        if (((Species) element).getComplex() != null) {
+          element.setCompartment(null);
+        } else if (element.getCompartment() == null) {
           Compartment selectedAlias = null;
           for (Compartment cAlias : model.getCompartments()) {
-            if (cAlias.cross(alias)) {
+            if (cAlias.cross(element)) {
               if (selectedAlias == null) {
                 selectedAlias = cAlias;
               } else if (selectedAlias.getSize() > cAlias.getSize()) {
@@ -1000,7 +1002,7 @@ public class ModelContructor {
             }
           }
           if (selectedAlias != null) {
-            selectedAlias.addElement(alias);
+            selectedAlias.addElement(element);
           }
         }
       }
@@ -1128,16 +1130,16 @@ public class ModelContructor {
       compartmentAlias.getElements().clear();
     }
 
-    for (Element alias : model.getElements()) {
+    for (Element element : model.getElements()) {
       // elements inside complexes shouldn't be considered
-      if (alias instanceof Species) {
-        if (((Species) alias).getComplex() != null) {
+      if (element instanceof Species) {
+        if (((Species) element).getComplex() != null) {
           continue;
         }
       }
       Compartment parentAlias = null;
       for (Compartment compartmentAlias : aliases) {
-        if (compartmentAlias.contains(alias)) {
+        if (compartmentAlias.contains(element)) {
           if (parentAlias == null) {
             parentAlias = compartmentAlias;
           } else if (parentAlias.getSize() > compartmentAlias.getSize()) {
@@ -1146,8 +1148,8 @@ public class ModelContructor {
         }
       }
       if (parentAlias != null) {
-        parentAlias.addElement(alias);
-        alias.setCompartment(parentAlias);
+        parentAlias.addElement(element);
+        element.setCompartment(parentAlias);
       }
     }
   }