diff --git a/src/stdio/src/lib.rs b/src/stdio/src/lib.rs
index cb53560895aa9eb7cc8335afc1fd14196902f804..1d720ed7e1423be584081e1708ec3b3d082926ac 100644
--- a/src/stdio/src/lib.rs
+++ b/src/stdio/src/lib.rs
@@ -203,6 +203,15 @@ impl Read for FILE {
     }
 }
 
+impl Drop for FILE {
+    fn drop(&mut self) {
+        // Flush
+        if let Some(_) = self.write {
+            self.write(&[]);
+        }
+    }
+}
+
 /// Clears EOF and ERR indicators on a stream
 #[no_mangle]
 pub extern "C" fn clearerr(stream: &mut FILE) {