Index: /trunk/src/VBox/Devices/Serial/DrvHostSerial.cpp
===================================================================
--- /trunk/src/VBox/Devices/Serial/DrvHostSerial.cpp	(revision 27393)
+++ /trunk/src/VBox/Devices/Serial/DrvHostSerial.cpp	(revision 27394)
@@ -2,10 +2,8 @@
 /** @file
  * VBox stream I/O devices: Host serial driver
- *
- * Contributed by: Alexander Eichner
  */
 
 /*
- * Copyright (C) 2006-2007 Sun Microsystems, Inc.
+ * Copyright (C) 2006-2010 Sun Microsystems, Inc.
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -67,4 +65,6 @@
 #   define TIOCM_LOOP 0x8000
 #  endif
+/* For linux custom baudrate code we also need serial_struct */
+#  include <linux/serial.h>
 # endif /* linux */
 
@@ -306,5 +306,21 @@
             break;
         default:
+#ifdef RT_OS_LINUX
+            struct serial_struct serialStruct;
+            if (ioctl(pThis->DeviceFile, TIOCGSERIAL, &serialStruct) != -1)
+            {
+                serialStruct.custom_divisor = serialStruct.baud_base / Bps;
+                if (!serialStruct.custom_divisor)
+                    serialStruct.custom_divisor = 1;
+                serialStruct.flags &= ~ASYNC_SPD_MASK;
+                serialStruct.flags |= ASYNC_SPD_CUST;
+                ioctl(pThis->DeviceFile, TIOCSSERIAL, &serialStruct);
+                baud_rate = B38400;
+            }
+            else
+                baud_rate = B9600;
+#else /* !RT_OS_LINUX */
             baud_rate = B9600;
+#endif /* !RT_OS_LINUX */
     }
 
