diff --git a/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/LostFromCacheIssueTest.java b/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/LostFromCacheIssueTest.java
index f33dabd..525b32c 100644
--- a/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/LostFromCacheIssueTest.java
+++ b/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/LostFromCacheIssueTest.java
@@ -18,15 +18,19 @@ package org.apache.jackrabbit.core;
 
 import java.io.File;
 import java.io.InputStream;
+
 import javax.jcr.NamespaceRegistry;
 import javax.jcr.Node;
+import javax.jcr.PathNotFoundException;
 import javax.jcr.Property;
+import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.SimpleCredentials;
 import javax.jcr.Workspace;
 import javax.jcr.nodetype.NodeTypeManager;
 
 import junit.framework.TestCase;
+
 import org.apache.jackrabbit.core.RepositoryImpl;
 import org.apache.jackrabbit.core.SessionImpl;
 import org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl;
@@ -114,7 +118,7 @@ public class LostFromCacheIssueTest extends AbstractJCRTest {
         node = node.addNode("test", "nt:unstructured");
         buildTree(node, 2, 2, 10, 96, 0);
         session.save();*/
-        session.getRootNode().addNode("test").addNode("node");
+        getOrCreate(session.getRootNode(), "/test/node");
         session.save();
 
 //        session.logout();
@@ -130,10 +134,41 @@ public class LostFromCacheIssueTest extends AbstractJCRTest {
 //        }
 //    }
 
+    private static Node getOrCreate(Node parent, String path) throws RepositoryException {
+        if (parent == null || path == null || path.trim().isEmpty()) {
+            throw new IllegalArgumentException("Missing `parent` or `path`");
+        }
+        
+        String p = path;
+        if (path.startsWith("/")) {
+            p = path.substring(1);
+        }
+
+        Node node = null;
+        try {
+            node = parent.getNode(p);
+        } catch (PathNotFoundException e) {
+            // swallowing exception
+        }
+        
+        if (node == null) {
+            // if null is not there and therefore creating it
+            for (String n : p.split("/")) {
+                if (node == null) {
+                    node = parent.addNode(n);
+                } else {
+                    node = node.addNode(n);
+                }
+            }
+        }
+        
+        return node;
+    }
+    
     public void testIssue() throws Exception {
         String path = "/test/node";
         Session session = superuser;
-        Node node = session.getRootNode().getNode(path.substring(1));
+        Node node = getOrCreate(session.getRootNode(), path);
         node.addMixin("test:mxn");
         mixinTypes = node.getProperty("jcr:mixinTypes");
         session.save();
