Workaround for bug #323510: substituted the epsilon transition for a

* xmlschemas.c: Workaround for bug #323510: substituted the
  epsilon transition for a labelled transition, in order to
  avoid a bug in xmlregexp.c which eliminated the epsilon
  transition and marked the initial state as final.
diff --git a/xmlschemas.c b/xmlschemas.c
index 79d58a0..f7f7567 100644
--- a/xmlschemas.c
+++ b/xmlschemas.c
@@ -12595,10 +12595,11 @@
 	} else if ((particle->maxOccurs >= UNBOUNDED) &&
 	           (particle->minOccurs < 2)) {
 	    /* Special case. */
-	    start = ctxt->state;
+	    start = ctxt->state;	    
 	    ctxt->state = xmlAutomataNewTransition2(ctxt->am, start, NULL,
-		elemDecl->name, elemDecl->targetNamespace, elemDecl);
-	    xmlAutomataNewEpsilon(ctxt->am, ctxt->state, start);
+		elemDecl->name, elemDecl->targetNamespace, elemDecl);	    
+	    ctxt->state = xmlAutomataNewTransition2(ctxt->am, ctxt->state, ctxt->state,
+		elemDecl->name, elemDecl->targetNamespace, elemDecl);	    
 	} else {
 	    int counter;
 	    int maxOccurs = particle->maxOccurs == UNBOUNDED ?