diff --git a/server-spi-private/src/main/java/org/keycloak/models/utils/RepresentationToModel.java b/server-spi-private/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
index 99faf6b..1448c5b 100755
--- a/server-spi-private/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
+++ b/server-spi-private/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
@@ -1680,7 +1680,7 @@ public class RepresentationToModel {
         model.setConsentText(rep.getConsentText());
         model.setProtocol(rep.getProtocol());
         model.setProtocolMapper(rep.getProtocolMapper());
-        model.setConfig(rep.getConfig());
+        model.setConfig(removeEmptyString(rep.getConfig()));
         return model;
     }
 
                 
                
                    
                    diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/client/ClientTemplateTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/client/ClientTemplateTest.java
index df57326..21ff67c 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/client/ClientTemplateTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/client/ClientTemplateTest.java
@@ -19,8 +19,8 @@ package org.keycloak.testsuite.admin.client;
 
 import org.junit.Assert;
 import org.junit.Test;
-
 import org.keycloak.admin.client.resource.ClientTemplatesResource;
+import org.keycloak.admin.client.resource.ProtocolMappersResource;
 import org.keycloak.admin.client.resource.RoleMappingResource;
 import org.keycloak.events.admin.OperationType;
 import org.keycloak.events.admin.ResourceType;
@@ -32,23 +32,27 @@ import org.keycloak.representations.idm.ClientRepresentation;
 import org.keycloak.representations.idm.ClientTemplateRepresentation;
 import org.keycloak.representations.idm.ErrorRepresentation;
 import org.keycloak.representations.idm.MappingsRepresentation;
+import org.keycloak.representations.idm.ProtocolMapperRepresentation;
 import org.keycloak.representations.idm.RoleRepresentation;
 import org.keycloak.testsuite.admin.ApiUtil;
 import org.keycloak.testsuite.util.AdminEventPaths;
 import org.keycloak.testsuite.util.Matchers;
 
 import javax.ws.rs.BadRequestException;
+import javax.ws.rs.ClientErrorException;
 import javax.ws.rs.NotFoundException;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
-import javax.ws.rs.*;
-import javax.ws.rs.core.Response.Status;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
 
 /**
  * @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
@@ -315,7 +319,6 @@ public class ClientTemplateTest extends AbstractClientTest {
         return testRealmResource().roles().get(roleName).toRepresentation();
     }
 
-
     // KEYCLOAK-2844
     @Test
     public void testRemoveTemplateInUse() {
@@ -350,6 +353,48 @@ public class ClientTemplateTest extends AbstractClientTest {
         removeTemplate(templateId);
     }
 
+    // KEYCLOAK-5863
+    @Test
+    public void testUpdateProtocolMappers() {
+        ClientTemplateRepresentation templateRep = new ClientTemplateRepresentation();
+        templateRep.setName("testUpdateProtocolMappers");
+        templateRep.setProtocol("openid-connect");
+
+
+        String templateId = createTemplate(templateRep);
+
+        ProtocolMapperRepresentation mapper = new ProtocolMapperRepresentation();
+        mapper.setName("test");
+        mapper.setProtocol("openid-connect");
+        mapper.setProtocolMapper("oidc-usermodel-attribute-mapper");
+
+        Map<String, String> m = new HashMap<>();
+        m.put("user.attribute", "test");
+        m.put("claim.name", "");
+        m.put("jsonType.label", "");
+
+        mapper.setConfig(m);
+
+        ProtocolMappersResource protocolMappers = clientTemplates().get(templateId).getProtocolMappers();
+
+        Response response = protocolMappers.createMapper(mapper);
+        String mapperId = ApiUtil.getCreatedId(response);
+
+        mapper = protocolMappers.getMapperById(mapperId);
+
+        mapper.getConfig().put("claim.name", "claim");
+
+        protocolMappers.update(mapperId, mapper);
+
+        List<ProtocolMapperRepresentation> mappers = protocolMappers.getMappers();
+        assertEquals(1, mappers.size());
+        assertEquals(2, mappers.get(0).getConfig().size());
+        assertEquals("test", mappers.get(0).getConfig().get("user.attribute"));
+        assertEquals("claim", mappers.get(0).getConfig().get("claim.name"));
+
+        clientTemplates().get(templateId).remove();
+    }
+
 
     private ClientTemplatesResource clientTemplates() {
         return testRealmResource().clientTemplates();
                 
                
                    
                    diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/IdentityProviderTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/IdentityProviderTest.java
index fdf0c14..2ec225c 100755
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/IdentityProviderTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/IdentityProviderTest.java
@@ -455,12 +455,12 @@ public class IdentityProviderTest extends AbstractAdminTest {
     // KEYCLOAK-4962
     @Test
     public void testUpdateProtocolMappers() {
-        create(createRep("google", "google"));
+        create(createRep("google2", "google"));
 
-        IdentityProviderResource provider = realm.identityProviders().get("google");
+        IdentityProviderResource provider = realm.identityProviders().get("google2");
 
         IdentityProviderMapperRepresentation mapper = new IdentityProviderMapperRepresentation();
-        mapper.setIdentityProviderAlias("google");
+        mapper.setIdentityProviderAlias("google2");
         mapper.setName("my_mapper");
         mapper.setIdentityProviderMapper("oidc-hardcoded-role-idp-mapper");
         Map<String, String> config = new HashMap<>();