Index: src/main/src/org/compass/core/lucene/engine/store/DefaultLuceneSearchEngineStore.java
===================================================================
--- src/main/src/org/compass/core/lucene/engine/store/DefaultLuceneSearchEngineStore.java	(revision 3919)
+++ src/main/src/org/compass/core/lucene/engine/store/DefaultLuceneSearchEngineStore.java	(working copy)
@@ -379,9 +379,13 @@
                 if (lockFactoryType instanceof String && LuceneEnvironment.LockFactory.Type.NATIVE_FS.equalsIgnoreCase((String) lockFactoryType)) {
                     String lockDir = path;
                     if (lockDir == null) {
-                        lockDir = connectionString + "/" + subContext + "/" + subIndex;
-                        if (lockDir.startsWith(FSDirectoryStore.PROTOCOL)) {
-                            lockDir = lockDir.substring(FSDirectoryStore.PROTOCOL.length());
+                        if (directoryStore instanceof FSDirectoryStore) {
+                            lockDir =  ((FSDirectoryStore)directoryStore).buildPath(subContext, subIndex);
+                        } else {
+                            lockDir = connectionString + "/" + subContext + "/" + subIndex;
+                            if (lockDir.startsWith(FSDirectoryStore.PROTOCOL)) {
+                                lockDir = lockDir.substring(FSDirectoryStore.PROTOCOL.length());
+                            }
                         }
                     }
                     try {
@@ -396,9 +400,13 @@
                 if (lockFactoryType instanceof String && LuceneEnvironment.LockFactory.Type.SIMPLE_FS.equalsIgnoreCase((String) lockFactoryType)) {
                     String lockDir = path;
                     if (lockDir == null) {
-                        lockDir = connectionString + "/" + subContext + "/" + subIndex;
-                        if (lockDir.startsWith(FSDirectoryStore.PROTOCOL)) {
-                            lockDir = lockDir.substring(FSDirectoryStore.PROTOCOL.length());
+                        if (directoryStore instanceof FSDirectoryStore) {
+                            lockDir =  ((FSDirectoryStore)directoryStore).buildPath(subContext, subIndex);
+                        } else {
+                            lockDir = connectionString + "/" + subContext + "/" + subIndex;
+                            if (lockDir.startsWith(FSDirectoryStore.PROTOCOL)) {
+                                lockDir = lockDir.substring(FSDirectoryStore.PROTOCOL.length());
+                            }
                         }
                     }
                     try {


