diff --git a/xwiki-platform-core/xwiki-platform-repository/xwiki-platform-repository-server-api/src/main/java/org/xwiki/repository/internal/RepositoryManager.java b/xwiki-platform-core/xwiki-platform-repository/xwiki-platform-repository-server-api/src/main/java/org/xwiki/repository/internal/RepositoryManager.java
index f77f7568f31df1be3b230681bc6b6a0af6e50435..13dd38fc0d1d55f608c9df936563867c6b893581 100644
--- a/xwiki-platform-core/xwiki-platform-repository/xwiki-platform-repository-server-api/src/main/java/org/xwiki/repository/internal/RepositoryManager.java
+++ b/xwiki-platform-core/xwiki-platform-repository/xwiki-platform-repository-server-api/src/main/java/org/xwiki/repository/internal/RepositoryManager.java
@@ -1072,6 +1072,13 @@ protected <T> T getValue(BaseObject object, String field, T def)
 
     protected boolean update(BaseObject object, String fieldName, Object value)
     {
+        // Make sure collection are lists
+        if (value instanceof Collection) {
+            if (!(value instanceof List)) {
+                value = new ArrayList<>((Collection) value);
+            }
+        }
+
         if (ObjectUtils.notEqual(value, getValue(object, fieldName))) {
             object.set(fieldName, value, this.xcontextProvider.get());