Index: etc/jspwiki.properties.tmpl
===================================================================
--- etc/jspwiki.properties.tmpl	(revision 1.47)
+++ etc/jspwiki.properties.tmpl	Wed Feb 06 10:30:43 CET 2008
@@ -380,7 +380,11 @@
 #
 #  Normally, the filter configuration is in your WEB-INF/ directory, so you
 #  do not need to go and specify this.  However, if your filters.xml live somewhere
-#  else, you'll have to specify it here.
+#  else, you'll have to specify it here. The path specified will be looked for in
+#  the following places:
+#  1) Inside the WAR file
+#  2) In the classpath
+#  3) In the filesystem (interpreting the path as a root path)
 #
 #jspwiki.filterConfig = /some/path/to/your/filters.xml
 
Index: src/com/ecyrd/jspwiki/filters/FilterManager.java
===================================================================
--- src/com/ecyrd/jspwiki/filters/FilterManager.java	(revision 1.13)
+++ src/com/ecyrd/jspwiki/filters/FilterManager.java	Wed Feb 06 10:10:37 CET 2008
@@ -202,23 +202,36 @@
         {
             registerFilters();
             
-            if( xmlFile == null )
-            {
-                if( m_engine.getServletContext() != null )
-                {
-                    log.debug("Attempting to locate "+DEFAULT_XMLFILE+" from servlet context.");
+			if( m_engine.getServletContext() != null )
+			{
+				log.debug("Attempting to locate "+DEFAULT_XMLFILE+" from servlet context.");
+				if( xmlFile == null )
+				{
-                    xmlStream = m_engine.getServletContext().getResourceAsStream( DEFAULT_XMLFILE );
-                }
+					xmlStream = m_engine.getServletContext().getResourceAsStream( DEFAULT_XMLFILE );
+				}
+				else
+				{
+					xmlStream = m_engine.getServletContext().getResourceAsStream( xmlFile );
+				}
+			}
-                
-                if( xmlStream == null )
-                {
-                    //just a fallback element to the old behaviour prior to 2.5.8
-                    log.debug("Attempting to locate filters.xml from class path.");
+
+			if( xmlStream == null )
+			{
+				//just a fallback element to the old behaviour prior to 2.5.8
+				log.debug("Attempting to locate filters.xml from class path.");
+
+				if( xmlFile == null )
+				{
-                    xmlStream = getClass().getResourceAsStream( "/filters.xml" );
-                }
+					xmlStream = getClass().getResourceAsStream( "/filters.xml" );
+				}
-            }
-            else
-            {
+				else
+				{
+					xmlStream = getClass().getResourceAsStream( xmlFile );
+				}
+			}
+
+			if( (xmlStream == null) && (xmlFile != null) )
+			{
                 log.debug("Attempting to load property file "+xmlFile);
                 xmlStream = new FileInputStream( new File(xmlFile) );
             }
