diff --git a/dblib/database.inc b/dblib/database.inc
index 5657419..b0c1fe5 100644
--- a/dblib/database.inc
+++ b/dblib/database.inc
@@ -50,9 +50,12 @@ class DatabaseConnection_dblib extends DatabaseConnection {
     // This driver defaults to transaction support, except if explicitly passed FALSE.
     $this->transactionSupport = !isset($connection_options['transactions']) || $connection_options['transactions'] !== FALSE;
 
+    // Use correct dsn separator for OS.
+    $separator = strpos(PHP_OS, 'WIN') === FALSE ? ':' : ',';
+
     // Build the DSN.
     $options = array(
-      'host=' . $connection_options['host'] . (!empty($connection_options['port']) ? ',' . $connection_options['port'] : ''),
+      'host=' . $connection_options['host'] . (!empty($connection_options['port']) ? $separator . $connection_options['port'] : ''),
       'dbname=' . $connection_options['database'],
     );
 
