diff --git a/rshell/main.py b/rshell/main.py
index <HASH>..<HASH> 100755
--- a/rshell/main.py
+++ b/rshell/main.py
@@ -969,6 +969,7 @@ def recv_file_from_host(src_file, dst_filename, filesize, dst_mode='wb'):
     """Function which runs on the pyboard. Matches up with send_file_to_remote."""
     import sys
     import ubinascii
+    import os
     if HAS_BUFFER:
         try:
             import pyb
@@ -1011,6 +1012,8 @@ def recv_file_from_host(src_file, dst_filename, filesize, dst_mode='wb'):
                     dst_file.write(write_buf[0:read_size])
                 else:
                     dst_file.write(ubinascii.unhexlify(write_buf[0:read_size]))
+                if hasattr(os, 'sync'):
+                    os.sync()
                 bytes_remaining -= read_size
         return True
     except:
diff --git a/rshell/version.py b/rshell/version.py
index <HASH>..<HASH> 100644
--- a/rshell/version.py
+++ b/rshell/version.py
@@ -1 +1 @@
-__version__ = '0.0.25'
+__version__ = '0.0.26'
Call os.sync to make UART transfer more reliable