fixed another couple of xmlreader bugs reported by Stéphane Bidoul and

* xmlreader.c python/tests/reader.py: fixed another couple of
  xmlreader bugs reported by Stéphane Bidoul and added tests.
Daniel
diff --git a/xmlreader.c b/xmlreader.c
index fea78cb..1d65df6 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -395,8 +395,9 @@
     oldstate = reader->state;
     olddepth = reader->ctxt->nodeNr;
     oldnode = reader->node;
-    wasempty = ((reader->wasempty == 1) && (reader->ctxt->node != NULL) &&
-	        (reader->ctxt->node->last == reader->node));
+    wasempty = (((reader->wasempty == 1) && (reader->ctxt->node != NULL) &&
+	         (reader->ctxt->node->last == reader->node)) ||
+	        (reader->node != reader->ctxt->node));
 
     /*
      * If we are not backtracking on ancestors or examined nodes,
@@ -1443,6 +1444,8 @@
 	return(-1);
     if (reader->node->type != XML_ELEMENT_NODE)
 	return(0);
+    if (reader->curnode != NULL)
+	return(0);
     if (reader->node->children != NULL)
 	return(0);
     if (reader->node != reader->ctxt->node)