diff --git a/tools/pyboard.py b/tools/pyboard.py
index b7babdc3050777fe8713da76da15f43bacfb3f10..d96ccc328af3f7ad0ef942670c23c4cd1f43f920 100755
--- a/tools/pyboard.py
+++ b/tools/pyboard.py
@@ -179,7 +179,9 @@ class ProcessPtyToTerminal:
             self.close()
             sys.exit(1)
         pty = m.group()
-        self.ser = serial.Serial(pty, interCharTimeout=1)
+        # rtscts, dsrdtr params are to workaround pyserial bug:
+        # http://stackoverflow.com/questions/34831131/pyserial-does-not-play-well-with-virtual-port
+        self.ser = serial.Serial(pty, interCharTimeout=1, rtscts=True, dsrdtr=True)
 
     def close(self):
         import signal