Index: /trunk/source/level-1/l1-files.lisp
===================================================================
--- /trunk/source/level-1/l1-files.lisp	(revision 8285)
+++ /trunk/source/level-1/l1-files.lisp	(revision 8286)
@@ -184,6 +184,9 @@
 
 (defun create-file (path &key (if-exists :error) (create-directory t))
-  (native-to-pathname (%create-file path :if-exists if-exists
+  (let* ((p (%create-file path :if-exists if-exists
 				      :create-directory create-directory)))
+    (and p
+         (native-to-pathname p))))
+
 (defun %create-file (path &key
 			 (if-exists :error)
@@ -195,13 +198,16 @@
   (assert (or (eql if-exists :overwrite)
               (null if-exists)
+              (eq if-exists :error)
               (not (probe-file path))) ()
 	  "~s ~s not implemented yet" :if-exists if-exists)
   (let* ((unix-name (native-translated-namestring path))
 	 (fd (fd-open unix-name (logior #$O_WRONLY #$O_CREAT #$O_TRUNC
-                                        (if (null if-exists)
+                                        (if (or (null if-exists)
+                                                (eq if-exists :error))
                                           #$O_EXCL
                                           0)))))
     (if (< fd 0)
-      (if (eql fd (- #$EEXIST))         ; #$O_EXCL was set and file exists
+      (if (and (null if-exists)
+               (eql fd (- #$EEXIST)))
         (return-from %create-file nil)
         (signal-file-error fd path))
Index: /trunk/source/level-1/l1-readloop-lds.lisp
===================================================================
--- /trunk/source/level-1/l1-readloop-lds.lisp	(revision 8285)
+++ /trunk/source/level-1/l1-readloop-lds.lisp	(revision 8286)
@@ -327,5 +327,5 @@
                           (cons keyword params)
                           keyword)))
-                    (params param)))))))))))
+                    (params (eval param))))))))))))
 
 ;;; Read a form from the specified stream.
@@ -410,7 +410,9 @@
 
 (defun abnormal-application-exit ()
-  (print-call-history)
-  (force-output *debug-io*)
-  (quit -1))
+  (ignore-errors
+    (print-call-history)
+    (force-output *debug-io*)
+    (quit -1))
+  (#__exit -1))
 
 (defun break-loop-handle-error (condition error-pointer)
Index: /trunk/source/level-1/l1-streams.lisp
===================================================================
--- /trunk/source/level-1/l1-streams.lisp	(revision 8285)
+++ /trunk/source/level-1/l1-streams.lisp	(revision 8286)
@@ -5597,5 +5597,5 @@
          (tem-path (merge-pathnames (make-pathname :name (%integer-to-string date) :type "tem" :defaults nil) path)))
     (loop
-      (when (not (probe-file tem-path)) (return tem-path))
+      (when (%create-file tem-path :if-exists nil) (return tem-path))      
       (setf (%pathname-name tem-path) (%integer-to-string (setq date (1+ date)))))))
 
