diff --git a/src/main/java/org/openepics/names/util/StructureElementUtil.java b/src/main/java/org/openepics/names/util/StructureElementUtil.java
index 919abe9375130b6d2a77272104203f172ca75445..271182e63e341ce080ea5ee78cd3ece960f73a4e 100644
--- a/src/main/java/org/openepics/names/util/StructureElementUtil.java
+++ b/src/main/java/org/openepics/names/util/StructureElementUtil.java
@@ -305,7 +305,7 @@ public class StructureElementUtil {
                 systemGroup.getUuid(),
                 null,
                 systemGroup.getName(), systemGroup.getMnemonic(), mnemonicpath, 1,
-                systemGroup.getDescription(), Status.PENDING, systemGroup.isLatest(), systemGroup.isDeleted(),
+                systemGroup.getDescription(), Status.PENDING, Boolean.FALSE, systemGroup.isDeleted(),
                 systemGroup.getRequested(), systemGroup.getRequestedBy(), systemGroup.getRequestedComment());
     }
     /**
@@ -349,7 +349,7 @@ public class StructureElementUtil {
                 system.getUuid(),
                 system.getParentUuid(),
                 system.getName(), system.getMnemonic(), mnemonicpath, 2,
-                system.getDescription(), Status.PENDING, system.isLatest(), system.isDeleted(),
+                system.getDescription(), Status.PENDING, Boolean.FALSE, system.isDeleted(),
                 system.getRequested(), system.getRequestedBy(), system.getRequestedComment());
     }
     /**
@@ -393,7 +393,7 @@ public class StructureElementUtil {
                 subsystem.getUuid(),
                 subsystem.getParentUuid(),
                 subsystem.getName(), subsystem.getMnemonic(), mnemonicpath, 3,
-                subsystem.getDescription(), Status.PENDING, subsystem.isLatest(), subsystem.isDeleted(),
+                subsystem.getDescription(), Status.PENDING, Boolean.FALSE, subsystem.isDeleted(),
                 subsystem.getRequested(), subsystem.getRequestedBy(), subsystem.getRequestedComment());
     }
 
@@ -438,7 +438,7 @@ public class StructureElementUtil {
                 discipline.getUuid(),
                 null,
                 discipline.getName(), discipline.getMnemonic(), mnemonicpath, 1,
-                discipline.getDescription(), Status.PENDING, discipline.isLatest(), discipline.isDeleted(),
+                discipline.getDescription(), Status.PENDING, Boolean.FALSE, discipline.isDeleted(),
                 discipline.getRequested(), discipline.getRequestedBy(), discipline.getRequestedComment());
     }
     /**
@@ -482,7 +482,7 @@ public class StructureElementUtil {
                 deviceGroup.getUuid(),
                 deviceGroup.getParentUuid(),
                 deviceGroup.getName(), deviceGroup.getMnemonic(), mnemonicpath, 2,
-                deviceGroup.getDescription(), Status.PENDING, deviceGroup.isLatest(), deviceGroup.isDeleted(),
+                deviceGroup.getDescription(), Status.PENDING, Boolean.FALSE, deviceGroup.isDeleted(),
                 deviceGroup.getRequested(), deviceGroup.getRequestedBy(), deviceGroup.getRequestedComment());
     }
     /**
@@ -526,7 +526,7 @@ public class StructureElementUtil {
                 deviceType.getUuid(),
                 deviceType.getParentUuid(),
                 deviceType.getName(), deviceType.getMnemonic(), mnemonicpath, 3,
-                deviceType.getDescription(), Status.PENDING, deviceType.isLatest(), deviceType.isDeleted(),
+                deviceType.getDescription(), Status.PENDING, Boolean.FALSE, deviceType.isDeleted(),
                 deviceType.getRequested(), deviceType.getRequestedBy(), deviceType.getRequestedComment());
     }
 
diff --git a/src/test/java/org/openepics/names/docker/ITUtil.java b/src/test/java/org/openepics/names/docker/ITUtil.java
index 4598c419d5f351c6fd7b629f74d6d3cc14e9ef3a..ec376d2d9510f2b02cfcee973d1fef8535278f68 100644
--- a/src/test/java/org/openepics/names/docker/ITUtil.java
+++ b/src/test/java/org/openepics/names/docker/ITUtil.java
@@ -26,6 +26,8 @@ import java.io.IOException;
 import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.URL;
+import java.util.Map;
+import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
@@ -307,6 +309,40 @@ public class ITUtil {
 
     // ----------------------------------------------------------------------------------------------------
 
+    /**
+     * Add one to count for key in map.
+     *
+     * @param key key
+     * @param map map
+     */
+    static void addOne(UUID key, Map<UUID, Long> map) {
+        addOne(key, map, null);
+    }
+    /**
+     * Add one to count for key in map.
+     *
+     * @param key key
+     * @param map map
+     * @param mapNok map nok
+     */
+    static void addOne(UUID key, Map<UUID, Long> map, Map<UUID, Long> mapNok) {
+        if (key == null) {
+            return;
+        }
+
+        Long no = map.get(key);
+        if (mapNok != null && no == null) {
+            no = mapNok.get(key);
+            no = no != null ? no + 1 : 1;
+            mapNok.put(key, no);
+        } else {
+            no = no != null ? no + 1 : 1;
+            map.put(key, no);
+        }
+    }
+
+    // ----------------------------------------------------------------------------------------------------
+
     // enum for http methods
     static enum MethodChoice        {POST, GET, PUT, DELETE, PATCH};
 
diff --git a/src/test/java/org/openepics/names/docker/ITUtilNameElement.java b/src/test/java/org/openepics/names/docker/ITUtilNameElement.java
index 047fe843045bfc769d023cf80299af93c20b9a74..a00c03705932021e90a6ba709c39cce43d946210 100644
--- a/src/test/java/org/openepics/names/docker/ITUtilNameElement.java
+++ b/src/test/java/org/openepics/names/docker/ITUtilNameElement.java
@@ -19,6 +19,7 @@
 package org.openepics.names.docker;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -26,7 +27,10 @@ import static org.junit.jupiter.api.Assertions.fail;
 
 import java.io.IOException;
 import java.net.HttpURLConnection;
+import java.util.Map;
+import java.util.TreeMap;
 import java.util.UUID;
+import java.util.Map.Entry;
 
 import org.openepics.names.docker.ITUtil.AuthorizationChoice;
 import org.openepics.names.docker.ITUtil.EndpointChoice;
@@ -209,6 +213,9 @@ public class ITUtilNameElement {
                 assertTrue(responsePageNameElements.getListSize() >= expectedGreaterThanOrEqual);
             }
 
+            // expected value for latest for items in list
+            assertLatest(responsePageNameElements);
+
             return responsePageNameElements.getListSize();
         } catch (IOException e) {
             fail();
@@ -218,6 +225,30 @@ public class ITUtilNameElement {
         return null;
     }
 
+    /**
+     * Assert that response page with list of name elements has maximum one entry that is latest
+     * for any given uuid, which may not have status {@link Status#PENDING}.
+     *
+     * @param actual response page with list of name elements
+     */
+    public static void assertLatest(ResponsePageNameElements actual) {
+        // latest
+        //     status pending not with latest
+        //     maximum one item for any given uuid in list may be latest
+
+        assertNotNull(actual);
+        Map<UUID, Long> mapUuidCountLatest = new TreeMap<>();
+        for (NameElement nameElement : actual.getList()) {
+            if (nameElement.isLatest()) {
+                ITUtil.addOne(nameElement.getUuid(), mapUuidCountLatest);
+                assertNotEquals(Status.PENDING, nameElement.getStatus());
+            }
+        }
+        for (Entry<UUID, Long> entry : mapUuidCountLatest.entrySet()) {
+            assertTrue(entry.getValue() <= 1);
+        }
+    }
+
     /**
      * Utility method to get name equivalence of a mnemonic or name.
      *
diff --git a/src/test/java/org/openepics/names/docker/ITUtilStructureElement.java b/src/test/java/org/openepics/names/docker/ITUtilStructureElement.java
index fdd64536d8a06544f63451c31f5facb6bb03a173..cc06611cb153d9cde4e20b54773b4b00ebcf0875 100644
--- a/src/test/java/org/openepics/names/docker/ITUtilStructureElement.java
+++ b/src/test/java/org/openepics/names/docker/ITUtilStructureElement.java
@@ -19,6 +19,7 @@
 package org.openepics.names.docker;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -26,6 +27,9 @@ import static org.junit.jupiter.api.Assertions.fail;
 
 import java.io.IOException;
 import java.net.HttpURLConnection;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.TreeMap;
 import java.util.UUID;
 
 import org.openepics.names.docker.ITUtil.AuthorizationChoice;
@@ -204,6 +208,8 @@ public class ITUtilStructureElement {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + queryString);
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
+
+            // expected number of items in list
             if (expectedLessThanOrEqual >= 0) {
                 assertTrue(responsePageStructureElements.getListSize() <= expectedLessThanOrEqual);
             }
@@ -211,6 +217,9 @@ public class ITUtilStructureElement {
                 assertTrue(responsePageStructureElements.getListSize() >= expectedGreaterThanOrEqual);
             }
 
+            // expected value for latest for items in list
+            assertLatest(responsePageStructureElements);
+
             return responsePageStructureElements.getListSize();
         } catch (IOException e) {
             fail();
@@ -220,6 +229,30 @@ public class ITUtilStructureElement {
         return null;
     }
 
+    /**
+     * Assert that response page with list of structure elements has maximum one entry that is latest
+     * for any given uuid, which may not have status {@link Status#PENDING}.
+     *
+     * @param actual response page with list of structure elements
+     */
+    public static void assertLatest(ResponsePageStructureElements actual) {
+        // latest
+        //     status pending not with latest
+        //     maximum one item for any given uuid in list may be latest
+
+        assertNotNull(actual);
+        Map<UUID, Long> mapUuidCountLatest = new TreeMap<>();
+        for (StructureElement structureElement : actual.getList()) {
+            if (structureElement.isLatest()) {
+                ITUtil.addOne(structureElement.getUuid(), mapUuidCountLatest);
+                assertNotEquals(Status.PENDING, structureElement.getStatus());
+            }
+        }
+        for (Entry<UUID, Long> entry : mapUuidCountLatest.entrySet()) {
+            assertTrue(entry.getValue() <= 1);
+        }
+    }
+
     /**
      * Utility method to get name equivalence of a mnemonic or name.
      *