diff --git a/src/main/java/no/bioforsk/vips/logic/controller/servlet/OrganismController.java b/src/main/java/no/bioforsk/vips/logic/controller/servlet/OrganismController.java
index aec0401c7a1ee7fdddd274e6c30978624afa2802..4985a3d99090a3259ebac8dc509f45b60a9d64a1 100644
--- a/src/main/java/no/bioforsk/vips/logic/controller/servlet/OrganismController.java
+++ b/src/main/java/no/bioforsk/vips/logic/controller/servlet/OrganismController.java
@@ -199,19 +199,11 @@ public class OrganismController extends HttpServlet {
                     organism.setHierarchyCategoryId(formValidation.getFormField("hierarchyCategoryId").getValueAsInteger());
                     organism.setParentOrganismId(formValidation.getFormField("parentOrganismId").getValueAsInteger());
                     
-                    
-                    // Adding local name only if it is set
-                    if(!formValidation.getFormField("localName").getWebValue().isEmpty())
-                    {
-                        SessionControllerGetter.getOrganismBean().setOrganismLocalName(organism, formValidation.getFormField("localName").getWebValue(), SessionLocaleUtil.getCurrentLocale(request));
-                    }
-                    // If local name form field is not set, but it already has a local name, delete it
-                    else if(organism.getOrganismLocale(SessionLocaleUtil.getCurrentLocale(request).getLanguage()) != null)
-                    {
-                        SessionControllerGetter.getOrganismBean().removeOrganismLocalName(organism, SessionLocaleUtil.getCurrentLocale(request));
-                    }
-                    
-                    organism = SessionControllerGetter.getOrganismBean().storeOrganism(organism);
+                    organism = SessionControllerGetter.getOrganismBean().storeOrganismWithLocalName(
+                            organism,
+                            formValidation.getFormField("localName").getWebValue(),
+                            SessionLocaleUtil.getCurrentLocale(request)
+                            );
                     
                     //System.out.println(formValidation.getFormFields().toString());
                     Map<String, FormField> externalResourceIdentifiers = formValidation.getMultipleMapFormFields().get("externalResourceIdentifier");
diff --git a/src/main/java/no/bioforsk/vips/logic/controller/session/OrganismBean.java b/src/main/java/no/bioforsk/vips/logic/controller/session/OrganismBean.java
index f4a0093a6371a688b587844d15e5fc345be92267..d9dc6ecebc0b9db8bd31311b519fb5221826749d 100644
--- a/src/main/java/no/bioforsk/vips/logic/controller/session/OrganismBean.java
+++ b/src/main/java/no/bioforsk/vips/logic/controller/session/OrganismBean.java
@@ -36,7 +36,9 @@ import no.bioforsk.vips.logic.entity.Organism;
 import no.bioforsk.vips.logic.entity.OrganismExternalResource;
 import no.bioforsk.vips.logic.entity.OrganismLocale;
 import no.bioforsk.vips.logic.entity.OrganismLocalePK;
+import no.bioforsk.vips.logic.i18n.SessionLocaleUtil;
 import no.bioforsk.vips.logic.util.HierarchyCategoryLocaleNames;
+import no.bioforsk.vips.logic.util.SessionControllerGetter;
 
 /**
  * @copyright 2014 <a href="http://www.bioforsk.no/">Bioforsk</a>
@@ -129,13 +131,26 @@ public class OrganismBean {
         }
     }
 
-    public Organism storeOrganism(Organism organism) {
+    public Organism storeOrganismWithLocalName(Organism organism, String localName, ULocale currentLocale) {
         // Ensure that parentOrganismId = -1 => null
         if(organism.getParentOrganismId().equals(-1))
         {
             organism.setParentOrganismId(null);
         }
-        return em.merge(organism);
+        organism = em.merge(organism);
+        // Adding local name only if it is set
+        if(!localName.isEmpty())
+        {
+            //SessionControllerGetter.getOrganismBean().setOrganismLocalName(organism, localName, currentLocale);
+            this.setOrganismLocalName(organism, localName, currentLocale);
+        }
+        // If local name form field is not set, but it already has a local name, delete it
+        else if(organism.getOrganismLocale(currentLocale.getLanguage()) != null)
+        {
+            //SessionControllerGetter.getOrganismBean().removeOrganismLocalName(organism, currentLocale);
+            this.removeOrganismLocalName(organism, currentLocale);
+        }
+        return organism;
     }
 
     public void storeOrganismExternalResource(OrganismExternalResource organismExternalResource) {
@@ -179,7 +194,6 @@ public class OrganismBean {
      * @param currentLocale 
      */
     public void setOrganismLocalName(Organism organism, String localName, ULocale currentLocale) {
-        
         if(organism.getOrganismLocale(currentLocale.getLanguage()) == null)
         {
             OrganismLocalePK pk = new OrganismLocalePK(organism.getOrganismId(), currentLocale.getLanguage());
diff --git a/src/main/java/no/bioforsk/vips/logic/entity/Organism.java b/src/main/java/no/bioforsk/vips/logic/entity/Organism.java
index f2b3e8f04e70661c956bab2bb4085f970efcfeec..8c1c4752e002ff87af6fd9842e7f56ffa51cb9bc 100644
--- a/src/main/java/no/bioforsk/vips/logic/entity/Organism.java
+++ b/src/main/java/no/bioforsk/vips/logic/entity/Organism.java
@@ -19,6 +19,7 @@
 package no.bioforsk.vips.logic.entity;
 
 import java.io.Serializable;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import javax.persistence.Basic;
@@ -143,6 +144,8 @@ public class Organism implements Serializable {
 
     
     public Set<OrganismLocale> getOrganismLocaleSet() {
+        if(this.organismLocaleSet == null)
+            this.organismLocaleSet = new HashSet<>();
         return organismLocaleSet;
     }