diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SBOTermReactionType.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SBOTermReactionType.java
index 5424c1e616ac901d75ef79e90c44ae7771bdaba1..aa0f9c7eba278ef005b63f71faa4cefc520ccab2 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SBOTermReactionType.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SBOTermReactionType.java
@@ -60,7 +60,7 @@ public enum SBOTermReactionType {
       }
     }
     if (result == null) {
-      logger.warn("Don't know how to handle SBOTerm " + sboTerm + " for modifier");
+      logger.warn("Don't know how to handle SBOTerm " + sboTerm + " for reaction");
       result = StateTransitionReaction.class;
     }
     return result;
diff --git a/converter-sbml/testFiles/small/reaction/self_reaction.xml b/converter-sbml/testFiles/small/reaction/self_reaction.xml
new file mode 100644
index 0000000000000000000000000000000000000000..eb9932349c67367eeaab5ebdc5286972eb66aa17
--- /dev/null
+++ b/converter-sbml/testFiles/small/reaction/self_reaction.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level2/version4" level="2" version="4">
+  <model id="TestGEN">
+    <annotation/>
+    <listOfCompartments>
+      <compartment constant="true" id="default" name="cell" sboTerm="SBO:0000290" size="1">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqmodel="http://biomodels.net/model-qualifiers/" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:Description rdf:about="#">
+              <bqbiol:isVersionOf>
+                <rdf:Bag>
+                  <rdf:li rdf:resource="urn:miriam:obo.go:GO:0005623"/>
+                </rdf:Bag>
+              </bqbiol:isVersionOf>
+            </rdf:Description>
+          </rdf:RDF>
+        </annotation>
+      </compartment>
+    </listOfCompartments>
+    <listOfSpecies>
+      <species boundaryCondition="false" compartment="default" initialConcentration="1" id="s1588" name="NGFR" sboTerm="SBO:0000252">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqmodel="http://biomodels.net/model-qualifiers/" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:Description rdf:about="#">
+              <bqbiol:isEncodedBy>
+                <rdf:Bag>
+                  <rdf:li rdf:resource="urn:miriam:hgnc.symbol:NGFR"/>
+                </rdf:Bag>
+              </bqbiol:isEncodedBy>
+            </rdf:Description>
+          </rdf:RDF>
+        </annotation>
+      </species>
+    </listOfSpecies>
+    <listOfReactions>
+<reaction reversible="false" id="r2149" sboTerm="SBO:0000170">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqmodel="http://biomodels.net/model-qualifiers/" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:Description rdf:about="#">
+              <bqbiol:isDescribedBy>
+                <rdf:Bag>
+                  <rdf:li rdf:resource="urn:miriam:pubmed:22236693 "/>
+                </rdf:Bag>
+              </bqbiol:isDescribedBy>
+            </rdf:Description>
+          </rdf:RDF>
+        </annotation>
+        <listOfReactants>
+          <speciesReference species="s1588" stoichiometry="1"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="s1588" stoichiometry="1"/>
+        </listOfProducts>
+      </reaction>
+    </listOfReactions>
+  </model>
+</sbml>
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplySimpleLayoutModelCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplySimpleLayoutModelCommand.java
index fa528d3bf25e50734a5060868a761368f90c772f..3a426da477f813e6f27ee68d6b41fb8b1e43ba74 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplySimpleLayoutModelCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplySimpleLayoutModelCommand.java
@@ -120,10 +120,10 @@ public class ApplySimpleLayoutModelCommand extends ApplyLayoutModelCommand {
     Set<Species> elementToAlign = new HashSet<>();
     Map<Compartment, Set<Element>> elementsByStaticCompartment = new HashMap<>();
     for (Element element : elements) {
-      if (element.getWidth()==0) {
+      if (element.getWidth() == 0) {
         element.setWidth(SPECIES_WIDTH);
         element.setHeight(SPECIES_HEIGHT);
-        
+
       }
       if (element.getCompartment() == null || element.getCompartment() == parent) {
         if (element instanceof Compartment) {
@@ -218,6 +218,11 @@ public class ApplySimpleLayoutModelCommand extends ApplyLayoutModelCommand {
 
     Point2D middle = getMiddlePoint(productElement.getCenter(), reactantElement.getCenter());
 
+    //for self reactions
+    if (productElement.equals(reactantElement)) {
+      middle.setLocation(middle.getX(), middle.getY() + 50);
+    }
+
     modifyProducts(reaction, middle);
     modifyReactants(reaction, middle);
     modifyModifiers(reaction, middle);