diff --git a/src/main/java/org/hostsharing/hsadminng/service/accessfilter/JSonDeserializationWithAccessFilter.java b/src/main/java/org/hostsharing/hsadminng/service/accessfilter/JSonDeserializationWithAccessFilter.java
index 44ab3dfc..6e714b3c 100644
--- a/src/main/java/org/hostsharing/hsadminng/service/accessfilter/JSonDeserializationWithAccessFilter.java
+++ b/src/main/java/org/hostsharing/hsadminng/service/accessfilter/JSonDeserializationWithAccessFilter.java
@@ -153,6 +153,6 @@ public class JSonDeserializationWithAccessFilter<T> extends JSonAccessFilter<T>
     }
 
     private boolean isActuallyUpdated(final Field field, final T dto, T currentDto) {
-        return ObjectUtils.notEqual(ReflectionUtil.getValue(dto, field), ReflectionUtil.getValue(currentDto, field));
+         return 0 != ObjectUtils.compare(ReflectionUtil.getValue(dto, field), ReflectionUtil.getValue(currentDto, field));
     }
 }
diff --git a/src/test/java/org/hostsharing/hsadminng/service/accessfilter/JSonAccessFilterTestFixture.java b/src/test/java/org/hostsharing/hsadminng/service/accessfilter/JSonAccessFilterTestFixture.java
index 51686cf5..439f2990 100644
--- a/src/test/java/org/hostsharing/hsadminng/service/accessfilter/JSonAccessFilterTestFixture.java
+++ b/src/test/java/org/hostsharing/hsadminng/service/accessfilter/JSonAccessFilterTestFixture.java
@@ -92,6 +92,9 @@ public class JSonAccessFilterTestFixture {
         @AccessFor(init = ANYBODY, update = ANYBODY, read = ANYBODY)
         BigDecimal openBigDecimalField;
 
+        @AccessFor(init = SUPPORTER, update = SUPPORTER, read = SUPPORTER)
+        BigDecimal restrictedBigDecimalField;
+
         @AccessFor(init = ANYBODY, update = ANYBODY, read = ANYBODY)
         int[] openArrayField;
     }
diff --git a/src/test/java/org/hostsharing/hsadminng/service/accessfilter/JSonDeserializationWithAccessFilterUnitTest.java b/src/test/java/org/hostsharing/hsadminng/service/accessfilter/JSonDeserializationWithAccessFilterUnitTest.java
index 0db7844a..604aba3c 100644
--- a/src/test/java/org/hostsharing/hsadminng/service/accessfilter/JSonDeserializationWithAccessFilterUnitTest.java
+++ b/src/test/java/org/hostsharing/hsadminng/service/accessfilter/JSonDeserializationWithAccessFilterUnitTest.java
@@ -34,6 +34,9 @@ import static org.mockito.BDDMockito.given;
 @SuppressWarnings("ALL")
 public class JSonDeserializationWithAccessFilterUnitTest {
 
+    public static final String SOME_BIG_DECIMAL_AS_STRING = "5432191234888.1";
+    public static final BigDecimal SOME_BIG_DECIMAL = new BigDecimal(SOME_BIG_DECIMAL_AS_STRING).setScale(2, BigDecimal.ROUND_HALF_UP);
+    public static final BigDecimal SOME_BIG_DECIMAL_WITH_ANOTHER_SCALE = new BigDecimal(SOME_BIG_DECIMAL_AS_STRING).setScale(5, BigDecimal.ROUND_HALF_UP);
     @Rule
     public MockitoRule mockitoRule = MockitoJUnit.rule();
 
@@ -77,9 +80,10 @@ public class JSonDeserializationWithAccessFilterUnitTest {
             .with(dto -> dto.openPrimitiveLongField = 44444444L)
             .with(dto -> dto.openBooleanField = true)
             .with(dto -> dto.openPrimitiveBooleanField = false)
-            .with(dto -> dto.openBigDecimalField = new BigDecimal("9876543.09"))
+            .with(dto -> dto.openBigDecimalField = SOME_BIG_DECIMAL)
             .with(dto -> dto.openStringField = "3333")
             .with(dto -> dto.restrictedField = "initial value of restricted field")
+            .with(dto -> dto.restrictedBigDecimalField = SOME_BIG_DECIMAL)
         ));
         given(autowireCapableBeanFactory.createBean(GivenCustomerService.class)).willReturn(givenCustomerService);
         given(givenCustomerService.findOne(888L)).willReturn(Optional.of(new GivenCustomerDto()
@@ -134,6 +138,24 @@ public class JSonDeserializationWithAccessFilterUnitTest {
         assertThat(actualDto.openIntegerField).isEqualTo(1234);
     }
 
+
+    @Test
+    public void shouldDeserializeRestrictedBigDecimalFieldIfUnchangedByCompareTo() throws IOException {
+        // given
+        assertThat(SOME_BIG_DECIMAL_WITH_ANOTHER_SCALE).as("precondition failed").isNotEqualTo(SOME_BIG_DECIMAL);
+        givenJSonTree(asJSon(
+            ImmutablePair.of("id", 1234L),
+            ImmutablePair.of("customerId", 888L),
+            ImmutablePair.of("restrictedBigDecimalField", SOME_BIG_DECIMAL_WITH_ANOTHER_SCALE)));
+
+        // when
+        GivenDto actualDto = new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize();
+
+        // then
+        assertThat(actualDto.restrictedBigDecimalField).isEqualByComparingTo(SOME_BIG_DECIMAL);
+        assertThat(actualDto.restrictedBigDecimalField).isEqualByComparingTo(SOME_BIG_DECIMAL_WITH_ANOTHER_SCALE);
+    }
+
     @Test
     // TODO: split in separate tests for each type, you see all errors at once (if any) and it's easier to debug when there are problems
     public void shouldDeserializeAcessibleFieldOfAnyType() throws IOException {
diff --git a/src/test/java/org/hostsharing/hsadminng/service/accessfilter/RoleUnitTest.java b/src/test/java/org/hostsharing/hsadminng/service/accessfilter/RoleUnitTest.java
index ec1fd98f..ce6a16f8 100644
--- a/src/test/java/org/hostsharing/hsadminng/service/accessfilter/RoleUnitTest.java
+++ b/src/test/java/org/hostsharing/hsadminng/service/accessfilter/RoleUnitTest.java
@@ -91,7 +91,7 @@ public class RoleUnitTest {
         assertThat(Role.ANY_CUSTOMER_USER.coversAny(Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT)).isFalse();
 
         assertThat(catchThrowable(() -> Role.HOSTMASTER.coversAny())).isInstanceOf(VerifyException.class);
-        assertThat(catchThrowable(() -> Role.HOSTMASTER.coversAny(null))).isInstanceOf(VerifyException.class);
+        assertThat(catchThrowable(() -> Role.HOSTMASTER.coversAny((Role[]) null))).isInstanceOf(VerifyException.class);
     }
 
     @Test