diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/LuceneQueryBuilder.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/LuceneQueryBuilder.java
index c18e52ed6964fec7b4aa3f5272b5f752d07252f0..671e7fd357ace059fef839ff2748541937082686 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/LuceneQueryBuilder.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/LuceneQueryBuilder.java
@@ -48,9 +48,6 @@ public class LuceneQueryBuilder
     public static String adaptQuery(String userQuery)
     {
         String result = disableFieldQuery(userQuery);
-        result =
-                removeSurroundingWordSeparators(result,
-                        SeparatorSplitterTokenFilter.WORD_SEPARATORS);
         result = replaceWordSeparators(result, SeparatorSplitterTokenFilter.WORD_SEPARATORS);
         return result;
     }
@@ -58,6 +55,10 @@ public class LuceneQueryBuilder
     @Private
     static String replaceWordSeparators(String query, char[] wordSeparators)
     {
+        if (looksLikeNumber(query))
+        {
+            return query;
+        }
         String queryTrimmed = removeSurroundingWordSeparators(query, wordSeparators);
         String charsRegexp = createAnyWordSeparatorRegexp(wordSeparators);
         String queryWithoutSeparators = queryTrimmed.replaceAll(charsRegexp, " AND ");
@@ -70,6 +71,12 @@ public class LuceneQueryBuilder
         }
     }
 
+    private static boolean looksLikeNumber(String query)
+    {
+        return query.length() > 0 && Character.isDigit(query.charAt(0))
+                && Character.isDigit(query.charAt(query.length() - 1));
+    }
+
     private static String createAnyWordSeparatorRegexp(char[] wordSeparators)
     {
         String charsRegexp = "[";