diff --git a/src/main/java/org/caosdb/server/entity/Entity.java b/src/main/java/org/caosdb/server/entity/Entity.java
index 48367508112c2c3267abd771fa84eb21ea16a534..e1acfbdc1cecf7eeb54f778be01d79ffc9b2cb53 100644
--- a/src/main/java/org/caosdb/server/entity/Entity.java
+++ b/src/main/java/org/caosdb/server/entity/Entity.java
@@ -609,10 +609,11 @@ public abstract class Entity extends AbstractObservable implements EntityInterfa
 
   @Override
   public void parseValue() throws Message {
-    if (!this.isParsed) {
-      this.isParsed = true;
-      setValue(getDatatype().parseValue(getValue()));
+    if (this.isParsed) {
+      return;
     }
+    this.isParsed = true;
+    if (getValue() != null) setValue(getDatatype().parseValue(getValue()));
   }
 
   @Override
diff --git a/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java b/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java
index 6fef590746bbf2c3ff802baec73385e4b061ec95..b4605c824eab5eb1b3b24990ebf503e8686a284b 100644
--- a/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java
+++ b/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java
@@ -298,6 +298,8 @@ public class CaosDBToGrpcConverters {
 
     } else if (value instanceof GenericValue) {
       return convertGenericValue((GenericValue) value);
+    } else if (value == null) {
+      return ScalarValue.newBuilder().setSpecialValue(SpecialValue.SPECIAL_VALUE_UNSPECIFIED);
     }
     return null;
   }
@@ -735,8 +737,9 @@ public class CaosDBToGrpcConverters {
                 result = getSelectedValue(s.getSubselection(), referenced_entity);
               } else if (v instanceof CollectionValue) {
                 for (Value i : (CollectionValue) v) {
-                  if (i instanceof ReferenceValue) {
-                    EntityInterface referenced_entity = ((ReferenceValue) i).getEntity();
+                  Value wrapped = ((IndexedSingleValue) i).getWrapped();
+                  if (wrapped instanceof ReferenceValue) {
+                    EntityInterface referenced_entity = ((ReferenceValue) wrapped).getEntity();
                     result = getSelectedValue(s.getSubselection(), referenced_entity);
                     results.add(result);
                   } else {