diff --git a/src/main/java/org/orekit/utils/DoubleArrayDictionary.java b/src/main/java/org/orekit/utils/DoubleArrayDictionary.java
index 0d75f26c4b18bd0e0e76dcd2cceb2c90d556a987..e6f3e71d1606a693d7a1bd27708bfcd14ad464bf 100644
--- a/src/main/java/org/orekit/utils/DoubleArrayDictionary.java
+++ b/src/main/java/org/orekit/utils/DoubleArrayDictionary.java
@@ -63,8 +63,10 @@ public class DoubleArrayDictionary implements Serializable {
      * @param dictionary dictionary to use for initializing entries
      */
     public DoubleArrayDictionary(final DoubleArrayDictionary dictionary) {
-        this(DEFAULT_INITIAL_CAPACITY + dictionary.data.size());
-        for (final Entry entry : dictionary.data) {
+        // take care to call dictionary.getData() and not use dictionary.data,
+        // otherwise we get an empty dictionary when using a DoubleArrayDictionary.view
+        this(DEFAULT_INITIAL_CAPACITY + dictionary.getData().size());
+        for (final Entry entry : dictionary.getData()) {
             // we don't call put(key, value) to avoid the overhead of the unneeded call to remove(key)
             data.add(new Entry(entry.getKey(), entry.getValue()));
         }
diff --git a/src/main/java/org/orekit/utils/FieldArrayDictionary.java b/src/main/java/org/orekit/utils/FieldArrayDictionary.java
index b59c747bce4e455cf52b3d12967ea3fc423f162b..3f585417f421bbeeaf86d81de54ed5e7f51ff36e 100644
--- a/src/main/java/org/orekit/utils/FieldArrayDictionary.java
+++ b/src/main/java/org/orekit/utils/FieldArrayDictionary.java
@@ -70,8 +70,10 @@ public class FieldArrayDictionary<T extends CalculusFieldElement<T>> {
      * @param dictionary dictionary to use for initializing entries
      */
     public FieldArrayDictionary(final FieldArrayDictionary<T> dictionary) {
-        this(dictionary.getField(), DEFAULT_INITIAL_CAPACITY + dictionary.data.size());
-        for (final Entry entry : dictionary.data) {
+        // take care to call dictionary.getData() and not use dictionary.data,
+        // otherwise we get an empty dictionary when using a FieldArrayDictionary.view
+        this(dictionary.getField(), DEFAULT_INITIAL_CAPACITY + dictionary.getData().size());
+        for (final Entry entry : dictionary.getData()) {
             // we don't call put(key, value) to avoid the overhead of the unneeded call to remove(key)
             data.add(new Entry(entry.getKey(), entry.getValue()));
         }