Released 1.8.6, Daniel.
diff --git a/doc/html/gnome-xml-nanoftp.html b/doc/html/gnome-xml-nanoftp.html
index a4692c9..19b332e 100644
--- a/doc/html/gnome-xml-nanoftp.html
+++ b/doc/html/gnome-xml-nanoftp.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN9291"
+NAME="AEN9326"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN9294"
+NAME="AEN9329"
 ></A
 ><H2
 >Synopsis</H2
@@ -154,6 +154,7 @@
                                              int year,
                                              const char *month,
                                              int day,
+                                             int hour,
                                              int minute);
 void        (<A
 HREF="gnome-xml-nanoftp.html#FTPDATACALLBACK"
@@ -165,6 +166,10 @@
 HREF="gnome-xml-nanoftp.html#XMLNANOFTPINIT"
 >xmlNanoFTPInit</A
 >                  (void);
+void        <A
+HREF="gnome-xml-nanoftp.html#XMLNANOFTPCLEANUP"
+>xmlNanoFTPCleanup</A
+>               (void);
 void*       <A
 HREF="gnome-xml-nanoftp.html#XMLNANOFTPNEWCTXT"
 >xmlNanoFTPNewCtxt</A
@@ -194,6 +199,23 @@
 HREF="gnome-xml-nanoftp.html#XMLNANOFTPQUIT"
 >xmlNanoFTPQuit</A
 >                  (void *ctx);
+void        <A
+HREF="gnome-xml-nanoftp.html#XMLNANOFTPSCANPROXY"
+>xmlNanoFTPScanProxy</A
+>             (const char *URL);
+void        <A
+HREF="gnome-xml-nanoftp.html#XMLNANOFTPPROXY"
+>xmlNanoFTPProxy</A
+>                 (const char *host,
+                                             int port,
+                                             const char *user,
+                                             const char *passwd,
+                                             int type);
+int         <A
+HREF="gnome-xml-nanoftp.html#XMLNANOFTPUPDATEURL"
+>xmlNanoFTPUpdateURL</A
+>             (void *ctx,
+                                             const char *URL);
 int         <A
 HREF="gnome-xml-nanoftp.html#XMLNANOFTPGETRESPONSE"
 >xmlNanoFTPGetResponse</A
@@ -253,7 +275,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN9319"
+NAME="AEN9358"
 ></A
 ><H2
 >Description</H2
@@ -263,14 +285,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN9322"
+NAME="AEN9361"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9324"
+NAME="AEN9363"
 ></A
 ><H3
 ><A
@@ -299,6 +321,7 @@
                                              int year,
                                              const char *month,
                                              int day,
+                                             int hour,
                                              int minute);</PRE
 ></TD
 ></TR
@@ -494,6 +517,23 @@
 ><TT
 CLASS="PARAMETER"
 ><I
+>hour</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
 >minute</I
 ></TT
 >&nbsp;:</TD
@@ -511,7 +551,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9379"
+NAME="AEN9422"
 ></A
 ><H3
 ><A
@@ -605,7 +645,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9401"
+NAME="AEN9444"
 ></A
 ><H3
 ><A
@@ -626,14 +666,42 @@
 ></TR
 ></TABLE
 ><P
->Initialize the FTP handling.</P
+>Initialize the FTP protocol layer.
+Currently it just checks for proxy informations,
+and get the hostname</P
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9407"
+NAME="AEN9450"
+></A
+><H3
+><A
+NAME="XMLNANOFTPCLEANUP"
+></A
+>xmlNanoFTPCleanup ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlNanoFTPCleanup               (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9455"
 ></A
 ><H3
 ><A
@@ -693,7 +761,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9422"
+NAME="AEN9470"
 ></A
 ><H3
 ><A
@@ -753,7 +821,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9437"
+NAME="AEN9485"
 ></A
 ><H3
 ><A
@@ -831,7 +899,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9456"
+NAME="AEN9504"
 ></A
 ><H3
 ><A
@@ -891,7 +959,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9471"
+NAME="AEN9519"
 ></A
 ><H3
 ><A
@@ -966,7 +1034,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9490"
+NAME="AEN9538"
 ></A
 ><H3
 ><A
@@ -1041,7 +1109,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9509"
+NAME="AEN9557"
 ></A
 ><H3
 ><A
@@ -1116,7 +1184,306 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9528"
+NAME="AEN9576"
+></A
+><H3
+><A
+NAME="XMLNANOFTPSCANPROXY"
+></A
+>xmlNanoFTPScanProxy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlNanoFTPScanProxy             (const char *URL);</PRE
+></TD
+></TR
+></TABLE
+><P
+>(Re)Initialize the FTP Proxy context by parsing the URL and finding
+the protocol host port it indicates.
+Should be like ftp://myproxy/ or ftp://myproxy:3128/
+A NULL URL cleans up proxy informations.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>URL</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  The proxy URL used to initialize the proxy context</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9591"
+></A
+><H3
+><A
+NAME="XMLNANOFTPPROXY"
+></A
+>xmlNanoFTPProxy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlNanoFTPProxy                 (const char *host,
+                                             int port,
+                                             const char *user,
+                                             const char *passwd,
+                                             int type);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Setup the FTP proxy informations.
+This can also be done by using ftp_proxy ftp_proxy_user and
+ftp_proxy_password environment variables.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>host</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  the proxy host name</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>port</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  the proxy port</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>user</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  the proxy user name</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>passwd</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  the proxy password</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  the type of proxy 1 for using SITE, 2 for USER a<TT
+CLASS="PARAMETER"
+><I
+>b</I
+></TT
+></TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9623"
+></A
+><H3
+><A
+NAME="XMLNANOFTPUPDATEURL"
+></A
+>xmlNanoFTPUpdateURL ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int         xmlNanoFTPUpdateURL             (void *ctx,
+                                             const char *URL);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Update an FTP context by parsing the URL and finding
+new path it indicates. If there is an error in the 
+protocol, hostname, port or other information, the
+error is raised. It indicates a new connection has to
+be established.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  an FTP context</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>URL</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  The URL used to update the context</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 if Ok, -1 in case of error (other host).</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9646"
 ></A
 ><H3
 ><A
@@ -1191,7 +1558,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9547"
+NAME="AEN9665"
 ></A
 ><H3
 ><A
@@ -1266,7 +1633,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9566"
+NAME="AEN9684"
 ></A
 ><H3
 ><A
@@ -1357,7 +1724,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9588"
+NAME="AEN9706"
 ></A
 ><H3
 ><A
@@ -1433,7 +1800,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9607"
+NAME="AEN9725"
 ></A
 ><H3
 ><A
@@ -1508,7 +1875,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9626"
+NAME="AEN9744"
 ></A
 ><H3
 ><A
@@ -1641,7 +2008,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9658"
+NAME="AEN9776"
 ></A
 ><H3
 ><A
@@ -1709,7 +2076,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the file to retrieve</TD
+>  the file to retrieve (or NULL if path is in context).</TD
 ></TR
 ><TR
 ><TD
@@ -1734,7 +2101,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9681"
+NAME="AEN9799"
 ></A
 ><H3
 ><A
@@ -1867,7 +2234,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9713"
+NAME="AEN9831"
 ></A
 ><H3
 ><A