Index: /trunk/MagicSoft/Mars/mbase/MDirIter.cc
===================================================================
--- /trunk/MagicSoft/Mars/mbase/MDirIter.cc	(revision 4192)
+++ /trunk/MagicSoft/Mars/mbase/MDirIter.cc	(revision 4193)
@@ -195,5 +195,11 @@
 Bool_t MDirIter::MatchFilter(const TString &n, const TString &f) const
 {
-    return f.IsNull() || !n(TRegexp(f, kTRUE)).IsNull();
+    // As the filter string may contain a + character, we have to replace
+    // this filter by a new filter contaning a \+ at all locations where a +
+    // was in the original filter.
+    TString nf(f);
+    nf.ReplaceAll("+","\\+");
+
+    return f.IsNull() || !n(TRegexp(nf, kTRUE)).IsNull();
 }
 
@@ -238,5 +244,5 @@
     // Check global filter
     if (!MatchFilter(n, fFilter))
-        return kFALSE;
+         return kFALSE;
 
     // Check for file or directory
@@ -247,4 +253,5 @@
     // Check for rread perissions
     return !gSystem->AccessPathName(fqp, kReadPermission);
+
 }
 
