diff -dPNur tla-1.2.1/src/tla/libarch/pfs-ftp.c tla-1.2.1-new/src/tla/libarch/pfs-ftp.c
--- tla-1.2.1/src/tla/libarch/pfs-ftp.c	2004-08-10 14:13:55.000000000 +0500
+++ tla-1.2.1-new/src/tla/libarch/pfs-ftp.c	2004-08-24 17:20:55.000000000 +0500
@@ -249,6 +249,8 @@
   t_uchar * user = 0;
   t_uchar * passwd = 0;
   t_uchar * hostname = 0;
+  t_uchar * portname = 0;
+  t_uint16 port = 21;
   int status = -1;
   t_uchar * text = 0;
   long text_len = 0;
@@ -304,10 +306,22 @@
           hostname = str_save (0, hostname + 1);
         }
     }
+    
+    portname = str_chr_index(hostname, ':');
+    if (portname) {
+	portname = str_save(0, portname + 1);
+	port = atoi(portname);
+	lim_free(0, portname);
+
+	portname = str_save_n(0, hostname, str_chr_index(hostname, ':')-hostname);
+	lim_free(0, hostname);
+	hostname = portname;
+	portname = 0;
+    }
 
   /* hostname, user, passwd allocated strings.
    */
-  answer->in_fd = url_inet_client (&errn, hostname, 21);
+  answer->in_fd = url_inet_client (&errn, hostname, port);
 
   if (answer->in_fd < 0)
     {
