diff --git a/src/main/java/org/apache/commons/jelly/parser/XMLParser.java b/src/main/java/org/apache/commons/jelly/parser/XMLParser.java
index d9cfd21..0272ad8 100644
--- a/src/main/java/org/apache/commons/jelly/parser/XMLParser.java
+++ b/src/main/java/org/apache/commons/jelly/parser/XMLParser.java
@@ -995,7 +995,7 @@
 
             InputStream in = null;
             URL url =
-                getClassLoader().getResource("src/main/resources/org/apache/commons/jelly/jelly.properties");
+                getClassLoader().getResource("org/apache/commons/jelly/jelly.properties");
             if (url != null) {
                 log.debug("Loading Jelly default tag libraries from: " + url);
                 try {
diff --git a/src/test/java/org/apache/commons/jelly/TestCoreTags.java b/src/test/java/org/apache/commons/jelly/TestCoreTags.java
index 35b82cf..354d275 100644
--- a/src/test/java/org/apache/commons/jelly/TestCoreTags.java
+++ b/src/test/java/org/apache/commons/jelly/TestCoreTags.java
@@ -53,7 +53,7 @@
     }
 
     public void testArgs() throws Exception {
-        InputStream in = new FileInputStream("src/test/org/apache/commons/jelly/test_args.jelly");
+        InputStream in = new FileInputStream("src/test/resources/org/apache/commons/jelly/test_args.jelly");
         XMLParser parser = new XMLParser();
         Script script = parser.parse(in);
         script = script.compile();
@@ -109,7 +109,7 @@
 
 
     public void testStaticNamespacedAttributes() throws Exception {
-        InputStream in = new FileInputStream("src/test/org/apache/commons/jelly/testStaticNamespacedAttributes.jelly");
+        InputStream in = new FileInputStream("src/test/resources/org/apache/commons/jelly/testStaticNamespacedAttributes.jelly");
         XMLParser parser = new XMLParser();
         Script script = parser.parse(in);
         script = script.compile();
diff --git a/src/test/java/org/apache/commons/jelly/core/TestIncludeTag.java b/src/test/java/org/apache/commons/jelly/core/TestIncludeTag.java
index 75391f6..775aacf 100644
--- a/src/test/java/org/apache/commons/jelly/core/TestIncludeTag.java
+++ b/src/test/java/org/apache/commons/jelly/core/TestIncludeTag.java
@@ -114,7 +114,7 @@
      */
     public void testFileInclude() throws Exception {
         // testing outermost
-        setUpFromURL(new URL("file:src/test/org/apache/commons/jelly/core/a.jelly"));
+        setUpFromURL(new URL("file:src/test/resources/org/apache/commons/jelly/core/a.jelly"));
         Script script = jelly.compileScript();
         script.run(context,xmlOutput);
         assertTrue("should have set 'c' variable to 'true'",
diff --git a/src/test/java/org/apache/commons/jelly/test/xml/TestCData.java b/src/test/java/org/apache/commons/jelly/test/xml/TestCData.java
index ef5e071..3526e0c 100644
--- a/src/test/java/org/apache/commons/jelly/test/xml/TestCData.java
+++ b/src/test/java/org/apache/commons/jelly/test/xml/TestCData.java
@@ -45,7 +45,7 @@
      */
     public void testCData() throws Exception {
         Jelly jelly = new Jelly();
-        jelly.setScript("file:src/test/org/apache/commons/jelly/test/xml/testCData.jelly");
+        jelly.setScript("file:src/test/resources/org/apache/commons/jelly/test/xml/testCData.jelly");
         Script script = jelly.compileScript();
         JellyContext context = new JellyContext();
         script.run(context, XMLOutput.createDummyXMLOutput());
