diff -u -r curl-7.15.0/lib/ftp.c curl-7.15.x/lib/ftp.c
--- curl-7.15.0/lib/ftp.c	2005-10-05 02:09:20.000000000 -0400
+++ curl-7.15.x/lib/ftp.c	2005-11-10 11:38:30.000000000 -0500
@@ -777,11 +777,7 @@
   /******************************************************************
    * IPv6-specific section
    */
-#ifdef HAVE_STRUCT_SOCKADDR_STORAGE
   struct sockaddr_storage ss;
-#else
-  char ss[256]; /* this should be big enough to fit a lot */
-#endif
   struct addrinfo *res, *ai;
   socklen_t sslen;
   char hbuf[NI_MAXHOST];
diff -u -r curl-7.15.0/lib/setup.h curl-7.15.x/lib/setup.h
--- curl-7.15.0/lib/setup.h	2005-10-02 18:00:36.000000000 -0400
+++ curl-7.15.x/lib/setup.h	2005-11-10 11:38:25.000000000 -0500
@@ -309,4 +309,11 @@
 #define DEBUGF(x)
 #endif
 
-#endif /* __CONFIG_H */
+#ifndef HAVE_STRUCT_SOCKADDR_STORAGE
+struct sockaddr_storage
+  {
+    char buffer[256];   /* this should be big enough to fit a lot */
+  };
+#endif
+
+#endif /* __SETUP_H */
diff -u -r curl-7.15.0/lib/tftp.c curl-7.15.x/lib/tftp.c
--- curl-7.15.0/lib/tftp.c	2005-09-21 07:28:40.000000000 -0400
+++ curl-7.15.x/lib/tftp.c	2005-11-10 11:38:33.000000000 -0500
@@ -156,9 +156,9 @@
   time_t          start_time;
   time_t          max_time;
   unsigned short  block;
-  struct sockaddr local_addr;
+  struct sockaddr_storage   local_addr;
   socklen_t       local_addrlen;
-  struct sockaddr remote_addr;
+  struct sockaddr_storage   remote_addr;
   socklen_t       remote_addrlen;
   int             rbytes;
   int             sbytes;
@@ -345,7 +345,8 @@
     state->spacket.event = htons(TFTP_EVENT_ACK);
     state->spacket.u.ack.block = htons(state->block);
     sbytes = sendto(state->sockfd, &state->spacket, 4, MSG_NOSIGNAL,
-                    &state->remote_addr, state->remote_addrlen);
+                    (struct sockaddr *)&state->remote_addr,
+                    state->remote_addrlen);
     if(sbytes < 0) {
       failf(data, "%s\n", strerror(errno));
     }
@@ -371,7 +372,8 @@
       /* Resend the previous ACK */
       sbytes = sendto(state->sockfd, &state->spacket,
                       4, MSG_NOSIGNAL,
-                      &state->remote_addr, state->remote_addrlen);
+                      (struct sockaddr *)&state->remote_addr,
+                      state->remote_addrlen);
       /* Check all sbytes were sent */
       if(sbytes<0) {
         failf(data, "%s\n", strerror(errno));
@@ -436,7 +438,8 @@
     Curl_fillreadbuffer(state->conn, 512, &state->sbytes);
     sbytes = sendto(state->sockfd, &state->spacket,
                     4+state->sbytes, MSG_NOSIGNAL,
-                    &state->remote_addr, state->remote_addrlen);
+                    (struct sockaddr *)&state->remote_addr,
+                    state->remote_addrlen);
     /* Check all sbytes were sent */
     if(sbytes<0) {
       failf(data, "%s\n", strerror(errno));
@@ -456,7 +459,8 @@
       /* Re-send the data packet */
       sbytes = sendto(state->sockfd, &state->spacket,
                       4+state->sbytes, MSG_NOSIGNAL,
-                      &state->remote_addr, state->remote_addrlen);
+                      (struct sockaddr *)&state->remote_addr,
+                      state->remote_addrlen);
       /* Check all sbytes were sent */
       if(sbytes<0) {
         failf(data, "%s\n", strerror(errno));
@@ -542,7 +546,8 @@
   tftp_set_timeouts(state);
 
   /* Bind to any interface, random UDP port */
-  rc = bind(state->sockfd, &state->local_addr, sizeof(state->local_addr));
+  rc = bind(state->sockfd, (struct sockaddr *)&state->local_addr,
+            sizeof(state->local_addr));
   if(rc) {
     failf(conn->data, "bind() failed; %s\n",
           Curl_strerror(conn,Curl_ourerrno()));
@@ -592,7 +597,7 @@
   tftp_event_t          event;
   CURLcode              code;
   int                   rc;
-  struct sockaddr       fromaddr;
+  struct sockaddr_storage    fromaddr;
   socklen_t             fromlen;
   int                   check_time = 0;
 
@@ -626,7 +631,7 @@
       fromlen=sizeof(fromaddr);
       state->rbytes = recvfrom(state->sockfd,
                                (void *)&state->rpacket, sizeof(state->rpacket),
-                               0, &fromaddr, &fromlen);
+                               0, (struct sockaddr *)&fromaddr, &fromlen);
       if(state->remote_addrlen==0) {
         memcpy(&state->remote_addr, &fromaddr, fromlen);
         state->remote_addrlen = fromlen;
