diff --git a/src/main/java/org/caosdb/server/query/CQLLexer.g4 b/src/main/java/org/caosdb/server/query/CQLLexer.g4
index 1dc3ad495652bc6b1d6f87b7d21e8224c6ac48d2..be6dcfa99d2f9c48cba8a0f7fccb7f97b277e01d 100644
--- a/src/main/java/org/caosdb/server/query/CQLLexer.g4
+++ b/src/main/java/org/caosdb/server/query/CQLLexer.g4
@@ -529,7 +529,7 @@ COLON:
 
 /** Matches signed and unsigned numbers with decimal points, also numbers in scientific notation. */
 DECIMAL_NUMBER:
-    (HYPHEN_f WHITE_SPACE_f?)? 
+    ((HYPHEN_f | PLUS ) WHITE_SPACE_f?)? 
     ( NUM_f? DOT NUM_f WHITE_SPACE_f? E_NOTATION_f?
     | NUM_f WHITE_SPACE_f? E_NOTATION_f
     )
@@ -540,6 +540,11 @@ HYPHEN:
     HYPHEN_f
 ;
 
+/** */
+PLUS:
+	'+'
+;
+
 /** */
 fragment
 HYPHEN_f:
@@ -565,7 +570,7 @@ E_NOTATION_f:
 
 /** */
 TXT:
-    ('a'..'z' | 'A'..'Z' | NUM_f | '_' | '-' {_input.LA(1) != '>'}? | '+' | '&' | ';' | ',' | '$' | ':' | '%' | '^' | '~' {_input.LA(1) != '='}? | '`' | '´' | 'ö' | 'ä' | 'ß' | 'ü' | 'Ö' | 'Ä' | 'Ü' | '@' | '[' | ']' | '{' | '}' )+
+    ('a'..'z' | 'A'..'Z' | NUM_f | '_' | '-' {_input.LA(1) != '>'}? | PLUS | '&' | ';' | ',' | '$' | ':' | '%' | '^' | '~' {_input.LA(1) != '='}? | '`' | '´' | 'ö' | 'ä' | 'ß' | 'ü' | 'Ö' | 'Ä' | 'Ü' | '@' | '[' | ']' | '{' | '}' )+
 ;
 
 /** */
diff --git a/src/main/java/org/caosdb/server/query/CQLParser.g4 b/src/main/java/org/caosdb/server/query/CQLParser.g4
index d62b0eaa1ed86dcae86e7a721d204d5883b41b53..8615bae31fae67eb0bd3315f664bfa708db61618 100644
--- a/src/main/java/org/caosdb/server/query/CQLParser.g4
+++ b/src/main/java/org/caosdb/server/query/CQLParser.g4
@@ -613,7 +613,7 @@ value returns [String str]
  */
 number_with_unit
 :
-    ( UNSIGNED_INT | DECIMAL_NUMBER | HYPHEN WHITE_SPACE? UNSIGNED_INT)
+    ( UNSIGNED_INT | DECIMAL_NUMBER | ( HYPHEN | PLUS ) WHITE_SPACE? UNSIGNED_INT)
     (WHITE_SPACE? unit)?
 ;
 
@@ -625,7 +625,7 @@ unit
     (~(WHITE_SPACE | WHICH | HAS_A | WITH_A | WHERE | DOT | AND | OR | RPAREN ))
     (~(WHITE_SPACE))*
     |
-    HYPHEN?? UNSIGNED_INT SLASH (~(WHITE_SPACE))+
+    UNSIGNED_INT SLASH (~(WHITE_SPACE))+
 ;
 
 /**
diff --git a/src/main/java/org/caosdb/server/query/POV.java b/src/main/java/org/caosdb/server/query/POV.java
index bdbda62edec341b75e085fb92046fccd685eb42e..0de160cdb6249ffaea10f4eeeafdf4884323a186 100644
--- a/src/main/java/org/caosdb/server/query/POV.java
+++ b/src/main/java/org/caosdb/server/query/POV.java
@@ -53,7 +53,7 @@ import org.slf4j.LoggerFactory;
 public class POV implements EntityFilterInterface {
   public static final Pattern NUMBER_PATTERN =
       Pattern.compile(
-          "^((?:-\\s*)?[0-9]+(?:\\.[0-9]+)?(?:\\s*[eE]\\s*[+-]?\\s*[0-9]+)?)\\s*([^-]*)$");
+          "^((?:[+-]\\s*)?[0-9]+(?:\\.[0-9]+)?(?:\\s*[eE]\\s*[+-]?\\s*[0-9]+)?)\\s*([^-]*)$");
   private SubProperty subp = null;
   public static int retry = 10;
   private int retry_count = 0;
diff --git a/src/test/java/org/caosdb/server/query/POVTest.java b/src/test/java/org/caosdb/server/query/POVTest.java
index ac7fcc9bdb1023a8a2a62eed5ad7cc8d3093f52e..7212423bbaf2ac4d3c5e33543d3e6ffe4e70b5e4 100644
--- a/src/test/java/org/caosdb/server/query/POVTest.java
+++ b/src/test/java/org/caosdb/server/query/POVTest.java
@@ -15,7 +15,7 @@ class POVTest {
   public static final String MIN_DOUBLE = "4.9E-324";
 
   @ParameterizedTest
-  @ValueSource(strings = {"16", MAX_INT, MIN_INT, "0", "-0", "1", "- 1", "-1"})
+  @ValueSource(strings = {"16", MAX_INT, MIN_INT, "0", "-0", "1", "- 1", "-1", "+1"})
   void testNumberPatternMatchInteger(String intValue) {
 
     Matcher matcher = POV.NUMBER_PATTERN.matcher(intValue);
@@ -53,7 +53,8 @@ class POVTest {
         "2e-323",
         "2E-323",
         "2E- 323",
-        "2 e -323"
+        "2 e -323",
+        "+ 2.2132e+23"
       })
   void testNumberPatternMatchDouble(String doubleValue) {
 
diff --git a/src/test/java/org/caosdb/server/query/TestCQL.java b/src/test/java/org/caosdb/server/query/TestCQL.java
index 533dcda20f46a8004e4b12d9a22d690515792fc4..8d7a7e8fb219f286d6cdaffc4b28240a7b2897d5 100644
--- a/src/test/java/org/caosdb/server/query/TestCQL.java
+++ b/src/test/java/org/caosdb/server/query/TestCQL.java
@@ -7034,7 +7034,11 @@ public class TestCQL {
         "3E15m^2",
         "-3e15m",
         "-3e15 1/s",
-        "3e15 m^2"
+        "3e15 m^2",
+        "+1",
+        "+2.234",
+        "+2.234e+23",
+        "+3.324E-23"
       })
   public void testIssue144(String scientific_notation) {
     CQLLexer lexer;
@@ -7057,7 +7061,7 @@ public class TestCQL {
   }
 
   @ParameterizedTest
-  @ValueSource(strings = {"- 123", "- 1e23", "2 e -23", "2E- 323"})
+  @ValueSource(strings = {"- 123", "- 1e23", "2 e -23", "2E- 323", "+ 1"})
   public void testIssue144WhiteSpaceInNumber(String number) {
     CQLLexer lexer;
     lexer = new CQLLexer(CharStreams.fromString(this.issue144 + number));