diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IQueryUpdates.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IQueryUpdates.java
index 3db774cb6deef6dc8aba41808ab70f3ccf217a24..13bc48aecdec5aeb3a681c79db4c17953c0eafe8 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IQueryUpdates.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IQueryUpdates.java
@@ -16,6 +16,8 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
+import ch.systemsx.cisd.openbis.plugin.query.shared.basic.dto.QueryDatabase;
+
 /**
  * Description of the updates that should be done to the existing query.
  * 
@@ -24,4 +26,6 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 public interface IQueryUpdates extends IExpressionUpdates
 {
     QueryType getQueryType();
+
+    QueryDatabase getQueryDatabase();
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/QueryPE.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/QueryPE.java
index 591e410f323b6c1c1e8cde90b013f18d0984a75a..1eec50d0b8256f12d8c0934abd80a067b0ccbb5a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/QueryPE.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/QueryPE.java
@@ -41,8 +41,7 @@ public class QueryPE extends AbstractExpressionPE<QueryPE>
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
-    // FIXME get rid of this "1" when LMS-1495 is finished
-    private String queryDatabaseKey = "1";
+    private String queryDatabaseKey;
 
     private String name;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/server/QueryServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/server/QueryServer.java
index b99315199c1951093213c654846a8a866512b353..69fbac34f5af4d766813f24cd0ff449ae754b804 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/server/QueryServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/server/QueryServer.java
@@ -152,6 +152,7 @@ public class QueryServer extends AbstractServer<IQueryServer> implements IQueryS
         query.setPublic(expression.isPublic());
         query.setRegistrator(session.tryGetPerson());
         query.setQueryType(expression.getQueryType());
+        query.setQueryDatabaseKey(expression.getQueryDatabase().getKey());
         try
         {
             getDAOFactory().getQueryDAO().createQuery(query);
@@ -194,6 +195,8 @@ public class QueryServer extends AbstractServer<IQueryServer> implements IQueryS
             query.setExpression(updates.getExpression());
             query.setPublic(updates.isPublic());
             query.setQueryType(updates.getQueryType());
+            query.setQueryDatabaseKey(updates.getQueryDatabase().getKey());
+
             queryDAO.validateAndSaveUpdatedEntity(query);
         } catch (DataAccessException ex)
         {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/shared/basic/dto/QueryDatabase.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/shared/basic/dto/QueryDatabase.java
index 27c8294b008426c5d40509c187c03a493a0ea6de..666b59a20ddf7d4e73cc7bc4a9b83092a5598675 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/shared/basic/dto/QueryDatabase.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/shared/basic/dto/QueryDatabase.java
@@ -31,6 +31,12 @@ public class QueryDatabase implements IsSerializable, Comparable<QueryDatabase>
     {
     }
 
+    /** for tests */
+    public QueryDatabase(String key)
+    {
+        this(key, key);
+    }
+
     public QueryDatabase(String key, String label)
     {
         this.key = key;
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/QueryDAOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/QueryDAOTest.java
index be72fb807769dbf2e500ed526cf6f36f4a412aa4..03311e4912aae442a49b2938f62eee641b1e0062 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/QueryDAOTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/QueryDAOTest.java
@@ -33,6 +33,9 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.QueryPE;
 @Test(groups = "db")
 public class QueryDAOTest extends AbstractDAOTest
 {
+
+    private final static String DATABASE_KEY = "1";
+
     @Test
     public void testCreateQuery() throws Exception
     {
@@ -40,7 +43,7 @@ public class QueryDAOTest extends AbstractDAOTest
         assertEquals(0, queryDAO.listAllEntities().size());
         QueryPE query =
                 createQuery("q1", "test query", "select * from blabla", true, getSystemPerson(),
-                        QueryType.GENERIC);
+                        QueryType.GENERIC, DATABASE_KEY);
 
         queryDAO.createQuery(query);
 
@@ -55,7 +58,7 @@ public class QueryDAOTest extends AbstractDAOTest
     }
 
     private QueryPE createQuery(String name, String description, String expression,
-            boolean isPublic, PersonPE registrator, QueryType type)
+            boolean isPublic, PersonPE registrator, QueryType type, String databaseKey)
     {
         QueryPE query = new QueryPE();
         query.setName(name);
@@ -64,6 +67,7 @@ public class QueryDAOTest extends AbstractDAOTest
         query.setPublic(isPublic);
         query.setRegistrator(registrator);
         query.setQueryType(type);
+        query.setQueryDatabaseKey(databaseKey);
         return query;
     }
 }
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/query/shared/IQueryServer.java.expected b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/query/shared/IQueryServer.java.expected
index 57415b43dbd382d71e65444520a979a374726d72..f6e473e90b8c6efdce414a4a7f4f1d62b7204bc9 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/query/shared/IQueryServer.java.expected
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/query/shared/IQueryServer.java.expected
@@ -30,11 +30,11 @@ import ch.systemsx.cisd.openbis.generic.shared.authorization.annotation.RolesAll
 import ch.systemsx.cisd.openbis.generic.shared.authorization.validator.ExpressionValidator;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IQueryUpdates;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewQuery;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind;
 import ch.systemsx.cisd.openbis.plugin.query.shared.authorization.predicate.DeleteQueryPredicate;
 import ch.systemsx.cisd.openbis.plugin.query.shared.authorization.predicate.UpdateQueryPredicate;
+import ch.systemsx.cisd.openbis.plugin.query.shared.basic.dto.NewQuery;
 import ch.systemsx.cisd.openbis.plugin.query.shared.basic.dto.QueryDatabase;
 import ch.systemsx.cisd.openbis.plugin.query.shared.basic.dto.QueryExpression;
 import ch.systemsx.cisd.openbis.plugin.query.shared.basic.dto.QueryParameterBindings;
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/query/QueryEditingTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/query/QueryEditingTest.java
index c1276830c102e1523c29d4f05f7a9f9a58494cf4..185a6a5615990292e05af28dd17e48deb8a8e725 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/query/QueryEditingTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/query/QueryEditingTest.java
@@ -51,6 +51,9 @@ import ch.systemsx.cisd.openbis.plugin.query.shared.basic.dto.QueryParameterBind
 @Test(groups = "system test")
 public class QueryEditingTest extends QuerySystemTestCase
 {
+
+    private final static QueryDatabase DATABASE = new QueryDatabase("1");
+
     @AfterMethod
     public void tearDown()
     {
@@ -86,7 +89,8 @@ public class QueryEditingTest extends QuerySystemTestCase
         assertEquals(0, queryClientService.listQueries().size());
 
         NewQuery query =
-                createQuery("query1", "select * from sample_types", true, QueryType.GENERIC);
+                createQuery("query1", "select * from sample_types", true, QueryType.GENERIC,
+                        DATABASE);
         queryClientService.registerQuery(query);
 
         List<QueryExpression> queries = queryClientService.listQueries();
@@ -119,7 +123,8 @@ public class QueryEditingTest extends QuerySystemTestCase
         logIntoCommonClientService();
 
         NewQuery query =
-                createQuery("query", "select * from sample_types", true, QueryType.GENERIC);
+                createQuery("query", "select * from sample_types", true, QueryType.GENERIC,
+                        DATABASE);
         queryClientService.registerQuery(query);
 
         try
@@ -139,9 +144,11 @@ public class QueryEditingTest extends QuerySystemTestCase
         logIntoCommonClientService();
 
         NewQuery query1 =
-                createQuery("query1", "select * from sample_types", true, QueryType.GENERIC);
+                createQuery("query1", "select * from sample_types", true, QueryType.GENERIC,
+                        DATABASE);
         NewQuery query2 =
-                createQuery("query2", "select * from experiment_types", true, QueryType.GENERIC);
+                createQuery("query2", "select * from experiment_types", true, QueryType.GENERIC,
+                        DATABASE);
         queryClientService.registerQuery(query1);
         queryClientService.registerQuery(query2);
 
@@ -190,7 +197,7 @@ public class QueryEditingTest extends QuerySystemTestCase
 
         NewQuery query =
                 createQuery("query", "select id, code from sample_types where id = ${id}", true,
-                        QueryType.GENERIC);
+                        QueryType.GENERIC, DATABASE);
         queryClientService.registerQuery(query);
 
         List<QueryExpression> queries = queryClientService.listQueries();
@@ -227,7 +234,7 @@ public class QueryEditingTest extends QuerySystemTestCase
     }
 
     private NewQuery createQuery(String name, String expression, boolean isPublic,
-            QueryType queryType)
+            QueryType queryType, QueryDatabase database)
     {
         NewQuery query = new NewQuery();
         query.setName(name);
@@ -235,6 +242,7 @@ public class QueryEditingTest extends QuerySystemTestCase
         query.setExpression(expression);
         query.setPublic(isPublic);
         query.setQueryType(queryType);
+        query.setQueryDatabase(database);
         return query;
     }