diff -r 8826f95514fd -r b5b9c75a4b54 libpurple/protocols/mxit/filexfer.c --- a/libpurple/protocols/mxit/filexfer.c Thu May 15 10:16:32 2014 +0530 +++ b/libpurple/protocols/mxit/filexfer.c Tue May 20 10:36:58 2014 +0530 @@ -167,13 +167,12 @@ filesize = purple_xfer_get_bytes_remaining( xfer ); buffer = g_malloc( filesize ); - if ( purple_xfer_read_file( xfer, buffer, filesize ) > 0 ) { + if (purple_xfer_read_file(xfer, buffer, filesize) == filesize) { /* send data */ wrote = purple_xfer_write( xfer, buffer, filesize ); if ( wrote > 0 ) purple_xfer_set_bytes_sent( xfer, wrote ); - } - else { + } else { /* file read error */ purple_xfer_error( purple_xfer_get_xfer_type( xfer ), purple_xfer_get_account( xfer ), purple_xfer_get_remote_user( xfer ), _( "Unable to access the local file" ) ); purple_xfer_cancel_local( xfer );