Index: trunk/MagicSoft/Mars/mdata/MDataList.cc
===================================================================
--- trunk/MagicSoft/Mars/mdata/MDataList.cc	(revision 2521)
+++ trunk/MagicSoft/Mars/mdata/MDataList.cc	(revision 2557)
@@ -76,4 +76,7 @@
         fSign = kEPlus;
         return;
+    case '%':
+        fSign = kEModul;
+        return;
     default:
         fSign = kENone;
@@ -148,4 +151,17 @@
         }
         break;
+
+    case kEModul:
+        while ((member=(MData*)Next()))
+        {
+            Double_t d = member->GetValue();
+            if (d==0)
+            {
+                *fLog << warn << "Warning: Modulo division by zero (" << member->GetName() << ")" << endl;
+                return 0;
+            }
+            val = fmod(val, d);
+        }
+        break;
     }
     return val;
@@ -315,4 +331,8 @@
             str += "/";
             break;
+
+        case kEModul:
+            str += "%";
+            break;
         }
 
Index: trunk/MagicSoft/Mars/mdata/MDataList.h
===================================================================
--- trunk/MagicSoft/Mars/mdata/MDataList.h	(revision 2521)
+++ trunk/MagicSoft/Mars/mdata/MDataList.h	(revision 2557)
@@ -23,5 +23,5 @@
     TOrdCollection fMembers;	// Container for the filters
 
-    typedef enum { kENone, kEPlus, kEMinus, kEMult, kEDiv } SignType_t;
+    typedef enum { kENone, kEPlus, kEMinus, kEMult, kEDiv, kEModul } SignType_t;
     SignType_t fSign;
 
