diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/ColorModelCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/ColorModelCommand.java
index f7da34ff5dfc2d45ffe2881c0a8e5bd916aeb390..1237e8f02e4af2273bc7159866d709f8624e3231 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/ColorModelCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/ColorModelCommand.java
@@ -209,6 +209,11 @@ public class ColorModelCommand extends ModelCommand {
           return false;
         }
       }
+      if (schema.getElementId() != null && !schema.getElementId().isEmpty()) {
+        if (!element.getElementId().equalsIgnoreCase(schema.getElementId())) {
+          return false;
+        }
+      }
       if (schema.getTypes().size() > 0) {
         boolean found = false;
         for (Class<?> clazz : schema.getTypes()) {
diff --git a/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java b/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java
index d523a7c938e27f7168f6e8048cbb3e44e804c92f..252d31a3c82a5053ee2b92d485921b5606bf6671 100644
--- a/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java
+++ b/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java
@@ -452,4 +452,46 @@ public class ColorModelCommandTest extends CommandTestFunctions {
     }
   }
 
+
+  public void testAliasColoringWithUnknownElementSourceId() throws Exception {
+    try {
+      Model model = getModelForFile("testFiles/sample.xml", false);
+
+      ColorSchema schema = new GenericColorSchema();
+      schema.setElementId("xxx");
+
+      Collection<ColorSchema> schemas = new ArrayList<>();
+      schemas.add(schema);
+
+      ColorModelCommand factory = new ColorModelCommand(model, schemas, colorExtractor);
+      Map<Object, ColorSchema> map = factory.getModifiedElements();
+      assertEquals(0, map.values().size());
+
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
+
+  @Test
+  public void testAliasColoringWithElementIdMatch() throws Exception {
+    try {
+      Model model = getModelForFile("testFiles/sample.xml", false);
+
+      ColorSchema schema = new GenericColorSchema();
+      schema.setElementId(model.getElements().iterator().next().getElementId());
+
+      Collection<ColorSchema> schemas = new ArrayList<>();
+      schemas.add(schema);
+
+      ColorModelCommand factory = new ColorModelCommand(model, schemas, colorExtractor);
+      Map<Object, ColorSchema> map = factory.getModifiedElements();
+      assertEquals(1, map.values().size());
+
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
+
 }
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/ColorSchema.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/ColorSchema.java
index e4a4b1f2e2e1dcfecfcefd5151066e4b4e7850df..0d185c7ad46077fe17412bd0779c2f0d95b94a92 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/layout/ColorSchema.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/ColorSchema.java
@@ -42,6 +42,8 @@ public abstract class ColorSchema implements Serializable {
    * Identifier of the reaction to change the color.
    */
   private String reactionIdentifier = null;
+  
+  private String elementId = null;
 
   /**
    * Should the direction of highlighted reaction be reversed.
@@ -467,4 +469,12 @@ public abstract class ColorSchema implements Serializable {
     this.modelName = modelName;
   }
 
+  public String getElementId() {
+    return elementId;
+  }
+
+  public void setElementId(String elementId) {
+    this.elementId = elementId;
+  }
+
 }