diff --git a/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java b/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java
index 43bed91..387ab7e 100755
--- a/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java
+++ b/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java
@@ -629,10 +629,14 @@ public class RealmRepresentation {
     }
 
     public Set<String> getSupportedLocales() {
+        return supportedLocales;
+    }
+
+    public void addSupportedLocales(String locale) {
         if(supportedLocales == null){
-            supportedLocales = new HashSet<String>();
+            supportedLocales = new HashSet<>();
         }
-        return supportedLocales;
+        supportedLocales.add(locale);
     }
 
     public void setSupportedLocales(Set<String> supportedLocales) {
                 
                
                    
                    diff --git a/model/api/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java b/model/api/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java
index c2a8a17..084d012 100755
--- a/model/api/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java
+++ b/model/api/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java
@@ -212,7 +212,10 @@ public class ModelToRepresentation {
         }
 
         rep.setInternationalizationEnabled(realm.isInternationalizationEnabled());
-        rep.getSupportedLocales().addAll(realm.getSupportedLocales());
+        if(realm.getSupportedLocales() != null){
+            rep.setSupportedLocales(new HashSet<String>());
+            rep.getSupportedLocales().addAll(realm.getSupportedLocales());
+        }
         rep.setDefaultLocale(realm.getDefaultLocale());
         if (internal) {
             exportAuthenticationFlows(realm, rep);
                 
                
                    
                    diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/RealmTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/RealmTest.java
index 8c41dfa..bb33515 100644
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/RealmTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/RealmTest.java
@@ -15,6 +15,8 @@ import java.io.IOException;
 import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.HashSet;
+import java.util.Arrays;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -103,6 +105,31 @@ public class RealmTest extends AbstractClientTest {
     }
 
     @Test
+    public void updateRealmWithNewRepresentation() {
+        // first change
+        RealmRepresentation rep = new RealmRepresentation();
+        rep.setEditUsernameAllowed(true);
+        rep.setSupportedLocales(new HashSet<>(Arrays.asList("en", "de")));
+
+        realm.update(rep);
+
+        rep = realm.toRepresentation();
+
+        assertEquals(Boolean.TRUE, rep.isEditUsernameAllowed());
+        assertEquals(2, rep.getSupportedLocales().size());
+
+        // second change
+        rep = new RealmRepresentation();
+        rep.setEditUsernameAllowed(false);
+
+        realm.update(rep);
+
+        rep = realm.toRepresentation();
+        assertEquals(Boolean.FALSE, rep.isEditUsernameAllowed());
+        assertEquals(2, rep.getSupportedLocales().size());
+    }
+
+    @Test
     public void getRealmRepresentation() {
         RealmRepresentation rep = realm.toRepresentation();
         assertEquals(REALM_NAME, rep.getRealm());