diff --git a/ChangeLog b/ChangeLog
index 2569fb5..c5d1213 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Sat Apr 20 09:22:50 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+	* xmlregexp.c: first implementation of the all particle, this
+	  may need to be revisited for case where not all transitions
+	  must be crossed.
+
 Fri Apr 19 18:26:04 CEST 2002 Daniel Veillard <daniel@veillard.com>
 
 	* tree.c: another entity processing update from Markus Henke
diff --git a/xmlregexp.c b/xmlregexp.c
index 5d63c90..c4a34e1 100644
--- a/xmlregexp.c
+++ b/xmlregexp.c
@@ -690,7 +690,9 @@
     if (trans->counter >= 0) {
 	fprintf(output, "counted %d, ", trans->counter);
     }
-    if (trans->count >= 0) {
+    if (trans->count == REGEXP_ALL_COUNTER) {
+	fprintf(output, "all transition, ");
+    } else if (trans->count >= 0) {
 	fprintf(output, "count based %d, ", trans->count);
     }
     if (trans->atom == NULL) {
@@ -907,7 +909,9 @@
     }
 #ifdef DEBUG_REGEXP_GRAPH
     printf("Add trans from %d to %d ", state->no, target->no);
-    if (count >= 0)
+    if (count == REGEXP_ALL_COUNTER)
+	printf("all transition");
+    else (count >= 0)
 	printf("count based %d", count);
     else if (counter >= 0)
 	printf("counted %d", counter);
@@ -2023,7 +2027,32 @@
 		continue;
 	    atom = trans->atom;
 	    ret = 0;
-	    if (trans->count >= 0) {
+	    if (trans->count == REGEXP_ALL_COUNTER) {
+		int i;
+		int count;
+		xmlRegTransPtr t;
+		xmlRegCounterPtr counter;
+
+		ret = 1;
+
+#ifdef DEBUG_PUSH
+		printf("testing all %d\n", trans->count);
+#endif
+		/*
+		 * Check all counted transitions from the current state
+		 */
+		for (i = 0;i < exec->state->nbTrans;i++) {
+                    t = &exec->state->trans[i];
+		    if ((t->counter < 0) || (t == trans))
+			continue;
+                    counter = &exec->comp->counters[t->counter];
+		    count = exec->counts[t->counter];
+		    if ((count < counter->min) || (count > counter->max)) {
+			ret = 0;
+			break;
+		    }
+		}
+	    } else if (trans->count >= 0) {
 		int count;
 		xmlRegCounterPtr counter;
 
