Can you try this? added by C-Keen on Wed Apr 10 20:22:01 2013

;; File t1.scm
(use posix)
(print "(() (\"hello other")
(flush-output)
(sleep 1)
(printf "process\"))")

;; File t2.scm
(use posix)

(let-values (((in out pid) (process "t1")))
  (print (read in)))

;; Build
csc t1.scm
csc t2.scm

;; Run
./t1

Error: unterminated string,'
rehto olleh'

        Call history:

        t1.scm:3: ##sys#call-with-values          
        t1.scm:3: process         
        t1.scm:4: read          <--

;; note the contents are my additions for debugging

;; ktrace on OpenBSD
7410 t1       RET   sigprocmask ~0x10100<SIGKILL|SIGSTOP>
  7410 t1       CALL  read(0x3,0xcfbaa0e4,0x100)
  7410 t1       GIO   fd 3 read 18 bytes
       "(() ("hello other
       "
  7410 t1       RET   read 18/0x12
  7410 t1       CALL  sigprocmask(SIG_BLOCK,~0<>)
  7410 t1       RET   sigprocmask 0<>
  7410 t1       CALL  mprotect(0x2a662000,0x2000,0x3<PROT_READ|PROT_WRITE>)
  7410 t1       RET   mprotect 0
  7410 t1       CALL  mprotect(0x2a662000,0x2000,0x1<PROT_READ>)
[...]
 7410 t1       CALL  mprotect(0x29d46000,0x1000,0x1<PROT_READ>)
  7410 t1       RET   mprotect 0
  7410 t1       CALL  sigprocmask(SIG_SETMASK,0<>)
  7410 t1       RET   sigprocmask ~0x10100<SIGKILL|SIGSTOP>
  7410 t1       CALL  write(0x2,0x8a3d6964,0x6)
  7410 t1       GIO   fd 2 wrote 6 bytes
       "
        Error"
  7410 t1       RET   write 6

no reads in between