--- mc-4.6.1/vfs/fish.c 2005-05-27 07:19:19.000000000 -0700 +++ mc-4.6.1/vfs/fish.c.new 2007-09-25 15:28:11.000000000 -0700 @@ -604,7 +604,11 @@ fish_linear_start (struct vfs_class *me, if (offset != PRELIM) ERRNOR (E_REMOTE, 0); fh->linear = LS_LINEAR_OPEN; fh->u.fish.got = 0; - if (sscanf( reply_str, "%d", &fh->u.fish.total )!=1) +#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 + if (sscanf( reply_str, "%llu", &fh->u.fish.total )!=1) +#else + if (sscanf( reply_str, "%u", &fh->u.fish.total )!=1) +#endif ERRNOR (E_REMOTE, 0); return 1; } --- mc-4.6.1/vfs/xdirentry.h 2004-10-06 11:04:15.000000000 -0700 +++ mc-4.6.1/vfs/xdirentry.h.new 2007-09-25 15:28:58.000000000 -0700 @@ -102,7 +102,8 @@ struct vfs_s_fh { int linear; /* Is that file open with O_LINEAR? */ union { struct { - int got, total, append; + off_t got, total; + int append; } fish; struct { int sock, append;