diff --git a/conf/core/cache.ccf b/conf/core/cache.ccf
index b4e1f93596a6170ef04ec373dc7a8d70e51fedcc..ad73cb86d259a1de8ecd836f8e72de8aa254793e 100644
--- a/conf/core/cache.ccf
+++ b/conf/core/cache.ccf
@@ -28,8 +28,8 @@ jcs.region.BACKEND_JobRules.cacheattributes.MaxObjects=103
 jcs.region.BACKEND_SparseEntities
 jcs.region.BACKEND_SparseEntities.cacheattributes.MaxObjects=1002
 
-jcs.region.BACKEND_RetrieveFullVersionInfo
-jcs.region.BACKEND_RetrieveFullVersionInfo.cacheattributes.MaxObjects=1006
+jcs.region.BACKEND_RetrieveVersionHistory
+jcs.region.BACKEND_RetrieveVersionHistory.cacheattributes.MaxObjects=1006
 
 # PAM UserSource Caching: Cached Items expire after 60 seconds if they are not requested (idle) and after 600 seconds max.
 # PAM_UnixUserGroups
diff --git a/src/main/java/org/caosdb/server/database/backend/transaction/InsertSparseEntity.java b/src/main/java/org/caosdb/server/database/backend/transaction/InsertSparseEntity.java
index 7e95d1c2012d00df0e6081583d21dc718fc65e12..22720f836e5cbd4912f3aedccd25398e80a19324 100644
--- a/src/main/java/org/caosdb/server/database/backend/transaction/InsertSparseEntity.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/InsertSparseEntity.java
@@ -70,5 +70,6 @@ public class InsertSparseEntity extends BackendTransaction {
             });
     this.entity.setId(e.id);
     this.entity.setVersion(new Version(e.versionId));
+    this.entity.getVersion().setHead(true);
   }
 }
diff --git a/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveTransactionHistory.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveTransactionHistory.java
index d013b296ba5fe4a747a07af448b167f225a9166f..28ffbf8a408afb8c10c9e1acdeb37e2eebaf07e4 100644
--- a/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveTransactionHistory.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveTransactionHistory.java
@@ -54,6 +54,8 @@ public class RetrieveTransactionHistory extends RetrieveVersionHistory {
     Version v = getVersion(getEntity().getVersion().getId());
     v.setSuccessors(getSuccessors(v.getId(), true));
     v.setPredecessors(getPredecessors(v.getId(), true));
+    v.setHead(v.getSuccessors().isEmpty());
+    v.setCompleteHistory(true);
     return v;
   }
 }
diff --git a/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveVersionInfo.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveVersionInfo.java
index e2218b1dc1190bc07796b462c0d7f2b5dab54538..26f3f396210eec58144b55d0f7e9d0c469cb7b30 100644
--- a/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveVersionInfo.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveVersionInfo.java
@@ -49,6 +49,7 @@ public class RetrieveVersionInfo extends RetrieveVersionHistory {
     Version v = getVersion(getEntity().getVersion().getId());
     v.setPredecessors(getPredecessors(v.getId(), false));
     v.setSuccessors(getSuccessors(v.getId(), false));
+    v.setHead(v.getSuccessors().isEmpty());
     return v;
   }
 }
diff --git a/src/main/java/org/caosdb/server/entity/Version.java b/src/main/java/org/caosdb/server/entity/Version.java
index 693e912eab13d80412a11a3bf3284424bfd5d55a..5529c7c5f5e8c83d95ad5afae7c1ae786806df89 100644
--- a/src/main/java/org/caosdb/server/entity/Version.java
+++ b/src/main/java/org/caosdb/server/entity/Version.java
@@ -36,6 +36,8 @@ public class Version {
   private List<Version> predecessors = null;
   private List<Version> successors = null;
   private UTCDateTime date = null;
+  private boolean isHead = false;
+  private boolean isCompleteHistory = false;
 
   public Version(String id, long seconds, int nanos) {
     this(id, UTCDateTime.UTCSeconds(seconds, nanos), null, null);
@@ -109,4 +111,20 @@ public class Version {
   public void setDate(Long timestamp) {
     this.date = UTCDateTime.SystemMillisToUTCDateTime(timestamp);
   }
+
+  public boolean isHead() {
+    return isHead;
+  }
+
+  public void setHead(boolean isHead) {
+    this.isHead = isHead;
+  }
+
+  public boolean isCompleteHistory() {
+    return isCompleteHistory;
+  }
+
+  public void setCompleteHistory(boolean isCompleteHistory) {
+    this.isCompleteHistory = isCompleteHistory;
+  }
 }
diff --git a/src/main/java/org/caosdb/server/entity/xml/VersionXMLSerializer.java b/src/main/java/org/caosdb/server/entity/xml/VersionXMLSerializer.java
index d43fe378b47996c22f6caa5f0e244ae58c8d5eb2..40d19a5f3a0ef6d9448ed8567840e610be712391 100644
--- a/src/main/java/org/caosdb/server/entity/xml/VersionXMLSerializer.java
+++ b/src/main/java/org/caosdb/server/entity/xml/VersionXMLSerializer.java
@@ -62,5 +62,11 @@ class VersionXMLSerializer {
     if (version.getDate() != null) {
       element.setAttribute("date", version.getDate().toDateTimeString(TimeZone.getDefault()));
     }
+    if (version.isHead()) {
+      element.setAttribute("head", "true");
+    }
+    if (version.isCompleteHistory()) {
+      element.setAttribute("completeHistory", "true");
+    }
   }
 }
diff --git a/src/main/java/org/caosdb/server/utils/Info.java b/src/main/java/org/caosdb/server/utils/Info.java
index 19f792cf625765924f02a7b734f2e57849584ffc..3a488a1ca50abcc99932e61901d07046c935f707 100644
--- a/src/main/java/org/caosdb/server/utils/Info.java
+++ b/src/main/java/org/caosdb/server/utils/Info.java
@@ -202,6 +202,10 @@ public class Info extends AbstractObservable implements Observer, TransactionInt
     }
     dropOffBox = new File(FileSystem.getDropOffBox());
     final Element info = new Element("Stats");
+    if (CaosDBServer.isDebugMode()) {
+      info.setAttribute("debug", "true");
+    }
+
     final Element counts = new Element("counts");
     counts.setAttribute("records", Integer.toString(recordsCount));
     counts.setAttribute("properties", Integer.toString(propertiesCount));
@@ -209,18 +213,16 @@ public class Info extends AbstractObservable implements Observer, TransactionInt
     counts.setAttribute("files", Integer.toString(filesCount));
     counts.setAttribute("fssize", fssize);
     counts.setAttribute("tmpfiles", Integer.toString(tmpFilesCount));
-    if (CaosDBServer.isDebugMode()) {
-      counts.setAttribute("debug", "true");
-    }
-    final Element e = new Element("dropOffBox");
+
+    final Element dropOffBoxElem = new Element("dropOffBox");
     if (dropOffBox.isDirectory()) {
       if (dropOffBox.canRead()) {
         if (tree) {
-          e.setAttribute("path", dropOffBox.getAbsolutePath());
-          e.addContent(getTree(dropOffBox.listFiles()));
+          dropOffBoxElem.setAttribute("path", dropOffBox.getAbsolutePath());
+          dropOffBoxElem.addContent(getTree(dropOffBox.listFiles()));
         } else {
-          e.setAttribute("path", dropOffBox.getAbsolutePath());
-          e.addContent(getFlatList(dropOffBox.listFiles()));
+          dropOffBoxElem.setAttribute("path", dropOffBox.getAbsolutePath());
+          dropOffBoxElem.addContent(getFlatList(dropOffBox.listFiles()));
         }
       } else {
         // TODO: return a message that the DropOffBox is not readable.
@@ -230,7 +232,7 @@ public class Info extends AbstractObservable implements Observer, TransactionInt
       // present.
     }
     info.addContent(counts);
-    info.addContent(e);
+    info.addContent(dropOffBoxElem);
     return info;
   }