diff --git a/smartmontools/CHANGELOG b/smartmontools/CHANGELOG
index e2f1aab2cf6a6e1c4c5164cad9aeeb2d6921ef34..2515c9c16e2b2c63775182eceff76c088335c146 100644
--- a/smartmontools/CHANGELOG
+++ b/smartmontools/CHANGELOG
@@ -43,6 +43,8 @@ NOTES FOR FUTURE RELEASES: see TODO file.
 
 <DEVELOPERS: ADDITIONS TO THE CHANGE LOG GO JUST BELOW HERE, PLEASE>
 
+  [CF] Cygwin: Open drive database files in text mode.
+
   [CF] Cygwin: Check for 'syslogd' and 'syslog-ng' in initd script.
 
   [CF] Windows: Disable Win9x/ME specific code if no longer supported
diff --git a/smartmontools/knowndrives.cpp b/smartmontools/knowndrives.cpp
index 8f9a9170450871ccf21d408a807720cd18619c93..79e538249489c7a3ac41aee246041761b09c6536 100644
--- a/smartmontools/knowndrives.cpp
+++ b/smartmontools/knowndrives.cpp
@@ -674,7 +674,11 @@ static bool parse_drive_database(parse_ptr src, drive_database & db, const char
 // Read drive database from file.
 bool read_drive_database(const char * path)
 {
-  stdio_file f(path, "r");
+  stdio_file f(path, "r"
+#ifdef __CYGWIN__ // Allow files with '\r\n'.
+                      "t"
+#endif
+                         );
   if (!f) {
     pout("%s: cannot open drive database file\n", path);
     return false;