scp sends the size of the file it's copying to the remote system. The printf string uses %lu by default, and %lld if the host system supports long long's. Unfortunately, the check for whether the system supports long longs' isn't correct and the wrong format string is used in some cases. Specifically, HAVE_LONG_LONG_INT isn't defined if int64_t is defined in the system headers. The patch below seperates the HAVE_LONG_LONG_INT logic from the HAVE_INT64_T logic. --- openssh-2.9p2.orig/defines.h Wed May 9 00:39:19 2001 +++ openssh-2.9p2/defines.h Fri Aug 10 17:44:58 2001 @@ -226,6 +226,10 @@ # endif #endif +#if (SIZEOF_LONG_LONG_INT == 8) +# define HAVE_LONG_LONG_INT +#endif + #ifndef HAVE_SOCKLEN_T typedef unsigned int socklen_t; # define HAVE_SOCKLEN_T -- Mike Stone