--- xa_input.c.orig	Sun Mar 21 23:36:25 1999
+++ xa_input.c	Thu Jun  7 15:02:43 2007
@@ -1025,28 +1025,28 @@
   memset(&data,0,sizeof(data));
   memset(&from,0,sizeof(from));
   if (gethostname(hostname, sizeof(hostname)) < 0)
-						return(xa_ftp_abort(xin));
+						return(xa_ftp_abort(*xin));
   if ((host= (struct hostent *)gethostbyname(hostname)) == 0)
-						return(xa_ftp_abort(xin));
+						return(xa_ftp_abort(*xin));
   data.sin_family = host->h_addrtype;
   memcpy( (char *)&data.sin_addr, (char *)host->h_addr_list[0], host->h_length);
   if ((tmp_sock = socket ( AF_INET  , SOCK_STREAM , 0 )) < 0)
-						return(xa_ftp_abort(xin));
+						return(xa_ftp_abort(*xin));
   len = 1;
   if (setsockopt(tmp_sock, SOL_SOCKET, SO_REUSEADDR,
 			(char *)(&len), sizeof(len)) < 0)
-			{ close(tmp_sock); return(xa_ftp_abort(xin)); }
+			{ close(tmp_sock); return(xa_ftp_abort(*xin)); }
 
   data.sin_port = 0;
   if ( bind(tmp_sock, (struct sockaddr *)&data, sizeof(data)) < 0 )
-			{ close(tmp_sock); return(xa_ftp_abort(xin)); }
+			{ close(tmp_sock); return(xa_ftp_abort(*xin)); }
 
   len = sizeof(data);
   if (getsockname(tmp_sock, (struct sockaddr *)&data, &len) < 0 )
-			{ close(tmp_sock); return(xa_ftp_abort(xin)); }
+			{ close(tmp_sock); return(xa_ftp_abort(*xin)); }
 
   if (listen(tmp_sock, 4) < 0 )
-			{ close(tmp_sock); return(xa_ftp_abort(xin)); }
+			{ close(tmp_sock); return(xa_ftp_abort(*xin)); }
 
      /* POD add support for PORT command? */
   addr = (xaUBYTE *) (&data.sin_addr);
@@ -1059,15 +1059,15 @@
 
   if (xa_ftp_send_cmd(xin, port_cmd, &retcode) == xaFALSE) 
 	{ fprintf(stderr,"FTP: send cmd err\n"); 
-	  close(tmp_sock); return(xa_ftp_abort(xin)); }
+	  close(tmp_sock); return(xa_ftp_abort(*xin)); }
 
   if (xa_ftp_send_cmd(xin, file_cmd, &retcode) == xaFALSE) 
 	{ fprintf(stderr,"FTP: send cmd err\n"); 
-	  close(tmp_sock); return(xa_ftp_abort(xin)); }
+	  close(tmp_sock); return(xa_ftp_abort(*xin)); }
 
   len = sizeof(from);
   xin->dsock = accept((int)tmp_sock, (struct sockaddr *) &from, (int *)&len);
-  if (xin->dsock < 0) { close(tmp_sock); return(xa_ftp_abort(xin)); }
+  if (xin->dsock < 0) { close(tmp_sock); return(xa_ftp_abort(*xin)); }
   close(tmp_sock);
   return(xaTRUE);
 }
