Index: /trunk/source/level-1/linux-files.lisp
===================================================================
--- /trunk/source/level-1/linux-files.lisp	(revision 15397)
+++ /trunk/source/level-1/linux-files.lisp	(revision 15398)
@@ -1818,8 +1818,33 @@
            ((atom strings)     
             (if strings (write-string strings out)))
-        (let* ((string (car strings)))
-          (dotimes (i (length string))
+        (let* ((string (car strings))
+               (n (length string))
+               (quote-backslash 0)
+               (literal-backslash 0))
+          (declare (fixnum n quote-backslash literal-backslash))
+          (dotimes (i n)
             (let* ((c (schar string i)))
               (case c
+                (#\\
+                 (unless (or (> quote-backslash 0)
+                             (> literal-backslash 0))
+                   (do* ((j i (1+ j))
+                         (k 0))
+                        ((= j n) (setq literal-backslash k))
+                     (case (schar string j)
+                       (#\\ (incf k))
+                       ((#\space #\tab #\")
+                        (setq quote-backslash k)
+                        (return))
+                       (t (setq literal-backslash k)
+                          (return)))))
+                 (if (> quote-backslash 0)
+                   (progn
+                     (write-char #\\ out)
+                     (write-char #\\ out)
+                     (decf quote-backslash))
+                   (progn
+                     (write-char #\\ out)
+                     (decf literal-backslash))))
                 ((#\space #\tab)
                  (write-char #\" out)
