diff --git a/CHANGELOG.md b/CHANGELOG.md
index bdedc677864430fc61ca4c06e86574c6e0765fcc..04f6d43ad5e61befeae5c1441eec7f61126bde94 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -22,6 +22,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Fixed ###
 
+* `NullPointerException` in GRPC API converters when executing SELECT query on
+  NULL values.
+
 ### Security ###
 
 ### Documentation ###
diff --git a/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java b/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java
index b4605c824eab5eb1b3b24990ebf503e8686a284b..1b70a729e4950f8aaf838100397b0338e7d798c0 100644
--- a/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java
+++ b/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java
@@ -706,7 +706,7 @@ public class CaosDBToGrpcConverters {
     return null;
   }
 
-  private org.caosdb.api.entity.v1.Value.Builder getSelectedValue(Selection s, EntityInterface e) {
+  org.caosdb.api.entity.v1.Value.Builder getSelectedValue(Selection s, EntityInterface e) {
     org.caosdb.api.entity.v1.Value.Builder result = null;
     String selector = s.getSelector();
     result = handleSpecialSelectors(selector, e);
diff --git a/src/test/java/org/caosdb/server/grpc/CaosDBToGrpcConvertersTest.java b/src/test/java/org/caosdb/server/grpc/CaosDBToGrpcConvertersTest.java
index d39a803f9cfe3ce0a4cf23265683d121b3bc688d..1a3489d86ae602679cff5b53d120aa32c9ed7d47 100644
--- a/src/test/java/org/caosdb/server/grpc/CaosDBToGrpcConvertersTest.java
+++ b/src/test/java/org/caosdb/server/grpc/CaosDBToGrpcConvertersTest.java
@@ -1,10 +1,10 @@
 package org.caosdb.server.grpc;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.util.TimeZone;
+import org.caosdb.api.entity.v1.Value.Builder;
 import org.caosdb.datetime.DateTimeFactory2;
 import org.caosdb.server.datatype.GenericValue;
 import org.caosdb.server.datatype.Value;
@@ -17,6 +17,7 @@ import org.caosdb.server.entity.StatementStatus;
 import org.caosdb.server.entity.wrapper.Parent;
 import org.caosdb.server.entity.wrapper.Property;
 import org.caosdb.server.entity.xml.IdAndServerMessagesOnlyStrategy;
+import org.caosdb.server.query.Query.Selection;
 import org.junit.jupiter.api.Test;
 
 public class CaosDBToGrpcConvertersTest {
@@ -27,7 +28,9 @@ public class CaosDBToGrpcConvertersTest {
     DateTimeFactory2 factory = new DateTimeFactory2(timeZone);
     CaosDBToGrpcConverters converters = new CaosDBToGrpcConverters(timeZone);
     Value value = null;
-    assertNull(converters.convertScalarValue(value));
+    assertEquals(
+        converters.convertScalarValue(value).toString(),
+        "special_value: SPECIAL_VALUE_UNSPECIFIED\n");
     value = factory.parse("2022");
     assertEquals(converters.convertScalarValue(value).toString(), "string_value: \"2022\"\n");
     value = factory.parse("2022-12");
@@ -101,4 +104,19 @@ public class CaosDBToGrpcConvertersTest {
         converters.convert(entity).toString(),
         "entity {\n  id: \"1234\"\n}\nerrors {\n  code: 1\n  description: \"error\"\n}\nwarnings {\n  code: 1\n  description: \"warning\"\n}\ninfos {\n  code: 1\n  description: \"info\"\n}\n");
   }
+
+  @Test
+  public void testGetSelectedValueWithNullValue() {
+    Property p = new Property(new RetrieveEntity());
+    p.setName("p0");
+    p.setDatatype("DOUBLE");
+    RetrieveEntity entity = new RetrieveEntity();
+    entity.addProperty(p);
+
+    CaosDBToGrpcConverters converters = new CaosDBToGrpcConverters(null);
+    Builder value = converters.getSelectedValue(new Selection("p0"), entity);
+    assertEquals(
+        "scalar_value {\n" + "  special_value: SPECIAL_VALUE_UNSPECIFIED\n" + "}\n",
+        value.toString());
+  }
 }