fixed a regression in iconv support. Daniel

* encoding.c: fixed a regression in iconv support.
Daniel
diff --git a/encoding.c b/encoding.c
index 8d193a9..6483322 100644
--- a/encoding.c
+++ b/encoding.c
@@ -1670,8 +1670,10 @@
     char *icv_out = (char *) out;
     int ret;
 
-    if ((out == NULL) || (outlen == NULL) || (inlen == NULL) || (in == NULL))
+    if ((out == NULL) || (outlen == NULL) || (inlen == NULL) || (in == NULL)) {
+        if (outlen != NULL) *outlen = 0;
         return(-1);
+    }
     icv_inlen = *inlen;
     icv_outlen = *outlen;
     ret = iconv(cd, (char **) &icv_in, &icv_inlen, &icv_out, &icv_outlen);
@@ -2166,7 +2168,7 @@
 		    written = 32000;
 		    ret = xmlIconvWrapper(handler->iconv_out, &convbuf[0],
 	                      &written, cur, &toconv);
-		    if (ret == -1) {
+		    if (ret < 0) {
 		        if (written > 0)
 			    ret = -2;
 			else