Same behavior with file-open: CHICKEN (c) 2008-2014, The Chicken Team (c) 2000-2007, Felix L. Winkelmann Version 4.9.1 (rev a3c7a5a) windows-mingw32-x86 [ manyargs dload ptables ] compiled 2014-05-04 on Cairo (MINGW32_NT-6.1) #;1> (use posix) ; loading C:/MinGW//lib/chicken/7/posix.import.so ... ; loading library posix ... #;2> (define fd (file-open "lobby.css" open/read)) #;3> fd 3 #;4> (define r (file-read fd 95)) #;5> r ("(use awful)\n\n(enable-sxml #t)\n\n(define-page (main-page-path)\n (lambda () \n \"Hello thero ther" 89) However, if we add the binary flag: CHICKEN (c) 2008-2014, The Chicken Team (c) 2000-2007, Felix L. Winkelmann Version 4.9.1 (rev a3c7a5a) windows-mingw32-x86 [ manyargs dload ptables ] compiled 2014-05-04 on Cairo (MINGW32_NT-6.1) #;1> (use posix) ; loading C:/MinGW//lib/chicken/7/posix.import.so ... ; loading library posix ... #;2> (define fd (file-open "lobby.css" (+ open/read open/binary))) #;3> fd 3 #;4> (define r (file-read fd 95)) #;5> r ("(use awful)\r\n\r\n(enable-sxml #t)\r\n\r\n(define-page (main-page-path)\r\n (lambda ()\r\n \"Hello ther" 95)