diff --git a/src/serial/rs232.cpp b/src/serial/rs232.cpp
index 783afc81820f85a73c3facf7fb0adb2604b377fc..3f20262ec992063eb4dafe4bc059ec4703f1d69a 100644
--- a/src/serial/rs232.cpp
+++ b/src/serial/rs232.cpp
@@ -243,6 +243,7 @@ int CRS232::hard_write(unsigned char *data, int len)
 {
   int num_written=0;
 
+  tcdrain(this->serial_fd);
   if((num_written=::write(this->serial_fd,data,len))==-1)
   {
     return -1;