Index: oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java
===================================================================
--- oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java	(revision 1532359)
+++ oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java	(working copy)
@@ -370,4 +370,28 @@
         Row row = it.nextRow();
         assertEquals("p1 p2", row.getValues()[0].getString());
     }
+
+    @Test
+    public void testOak1096() throws RepositoryException, InterruptedException {
+        Session writer = createAdminSession();
+        Session reader = createAdminSession();
+        try {
+            Node rootNode = writer.getRootNode();
+            Node node = rootNode.addNode("test", "nt:unstructured");
+            node.setProperty("text", "find me");
+            writer.save();
+
+            QueryManager qm = reader.getWorkspace().getQueryManager();
+            Query q = qm.createQuery("select * from 'nt:base' where contains(*, 'find me')", Query.JCR_SQL2);
+            NodeIterator res = q.execute().getNodes();
+            assertEquals("False amount of hits", 1, res.getSize());
+        } finally {
+            if (reader != null) {
+                reader.logout();
+            }
+            if (writer != null) {
+                writer.logout();
+            }
+        }
+    }
 }
Index: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryImpl.java
===================================================================
--- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryImpl.java	(revision 1532359)
+++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryImpl.java	(working copy)
@@ -34,9 +34,10 @@
 
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate;
 import org.apache.jackrabbit.oak.jcr.session.NodeImpl;
 import org.apache.jackrabbit.oak.jcr.session.SessionContext;
-import org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate;
+import org.apache.jackrabbit.oak.jcr.session.operation.SessionOperation;
 
 /**
  * The implementation of the corresponding JCR interface.
@@ -86,7 +87,14 @@
 
     @Override
     public QueryResult execute() throws RepositoryException {
-        return manager.executeQuery(statement, language, limit, offset, bindVariableMap);
+        return sessionContext.getSessionDelegate().perform(
+                new SessionOperation<QueryResult>() {
+                    @Override
+                    public QueryResult perform() throws RepositoryException {
+                        return manager.executeQuery(statement, language, limit,
+                                offset, bindVariableMap);
+                    }
+                });
     }
 
     @Override
