diff --git oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndex.java oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndex.java
index 2bad6bd..c8bdb76 100644
--- oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndex.java
+++ oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndex.java
@@ -896,6 +896,12 @@ public class LuceneIndex implements AdvanceFulltextQueryIndex {
             List<Term> terms = new ArrayList<Term>();
             Term onTerm = newFulltextTerm(token, fieldName);
             Terms t = MultiFields.getTerms(reader, onTerm.field());
+
+            //No existing field with given name indexed so no possible term values
+            if (t == null){
+                return new Term[0];
+            }
+
             Automaton a = WildcardQuery.toAutomaton(onTerm);
             CompiledAutomaton ca = new CompiledAutomaton(a);
             TermsEnum te = ca.getTermsEnum(t);
diff --git oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java
index faaa892..c0a4617 100644
--- oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java
+++ oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java
@@ -73,6 +73,7 @@ import org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore;
 import org.apache.jackrabbit.oak.query.QueryEngineSettings;
 import org.apache.jackrabbit.oak.query.ast.Operator;
 import org.apache.jackrabbit.oak.query.ast.SelectorImpl;
+import org.apache.jackrabbit.oak.query.fulltext.FullTextParser;
 import org.apache.jackrabbit.oak.query.fulltext.FullTextTerm;
 import org.apache.jackrabbit.oak.query.index.FilterImpl;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
@@ -113,6 +114,40 @@ public class LuceneIndexTest {
     private Set<File> dirs = newHashSet();
 
     @Test
+    public void testLuceneV1NonExistentProperty() throws Exception {
+        NodeBuilder index = builder.child(INDEX_DEFINITIONS_NAME);
+        newLuceneIndexDefinition(index, "lucene", ImmutableSet.of("String"));
+
+        NodeState before = builder.getNodeState();
+        builder.setProperty("foo", "value-with-dash");
+        NodeState after = builder.getNodeState();
+
+        NodeState indexed = HOOK.processCommit(before, after, CommitInfo.EMPTY);
+
+        IndexTracker tracker = new IndexTracker();
+        tracker.update(indexed);
+        AdvancedQueryIndex queryIndex = new LuceneIndex(tracker, null);
+
+        FilterImpl filter = createFilter(NT_BASE);
+        filter.restrictPath("/", Filter.PathRestriction.EXACT);
+        filter.setFullTextConstraint(FullTextParser.parse("foo", "value-with*"));
+        List<IndexPlan> plans = queryIndex.getPlans(filter, null, builder.getNodeState());
+        Cursor cursor = queryIndex.query(plans.get(0), indexed);
+        assertTrue(cursor.hasNext());
+        assertEquals("/", cursor.next().getPath());
+        assertFalse(cursor.hasNext());
+
+        //Now perform a query against a field which does not exist
+        FilterImpl filter2 = createFilter(NT_BASE);
+        filter2.restrictPath("/", Filter.PathRestriction.EXACT);
+        filter2.setFullTextConstraint(FullTextParser.parse("baz", "value-with*"));
+        List<IndexPlan> plans2 = queryIndex.getPlans(filter2, null, builder.getNodeState());
+        Cursor cursor2 = queryIndex.query(plans2.get(0), indexed);
+        assertFalse(cursor2.hasNext());
+    }
+
+
+    @Test
     public void testLucene() throws Exception {
         NodeBuilder index = builder.child(INDEX_DEFINITIONS_NAME);
         newLucenePropertyIndexDefinition(index, "lucene", ImmutableSet.of("foo"), null);
