diff --git a/test/lambda.lisp b/test/lambda.lisp
new file mode 100644
index 0000000000000000000000000000000000000000..8e1ee1ea6552db064e4dd4fdf57b979f3d2fd0bf
--- /dev/null
+++ b/test/lambda.lisp
@@ -0,0 +1,3 @@
+;; -*- coding: latin-2 -*-
+(in-package :asdf-test)
+(setf *lambda-string* "λ")
diff --git a/test/script-support.lisp b/test/script-support.lisp
index 419a2e32403a760d8b118570375c1fbb3d3e502f..42b01326cbc7dc1f6e8acc0d4906b1366b69a9d1 100644
--- a/test/script-support.lisp
+++ b/test/script-support.lisp
@@ -16,7 +16,8 @@
 (declaim (optimize (speed 2) (safety 3) #-(or allegro gcl) (debug 3)))
 (proclaim '(optimize (speed 2) (safety 3) #-(or allegro gcl) (debug 3)))
 
-;;(format t "Evaluating asdf/test/script-support~%")
+;; NB: can't print anything because of forward-ref test.
+;; (DBG "Evaluating asdf/test/script-support") 
 
 ;; We can't use asdf::merge-pathnames* because ASDF isn't loaded yet.
 ;; We still want to work despite and host/device funkiness.
diff --git a/test/test-encodings.script b/test/test-encodings.script
index 02e6939bf496df20d5464a9428134718c977c796..cd975c10db622c42d8c39450b00ce45634c3ae38 100644
--- a/test/test-encodings.script
+++ b/test/test-encodings.script
@@ -21,20 +21,21 @@
                #+sbcl sb-impl::*default-external-format*
                #-(or clozure sbcl) (error "can't determine default external-format")))))
 
-(defun reset-lambda ()
-  (setf *lambda-string* nil)
-  (asdf::delete-file-if-exists (asdf::compile-file-pathname* "lambda.lisp")))
-
 (defmacro with-test ((encoding &key (op 'asdf:load-source-op) (path "lambda")) defsystem &body body)
   (let ((sys (second defsystem)))
     `(progn
        (format t "~&Test ~A: should be ~A~%" ',sys ',encoding)
-       (reset-lambda)
+       (setf *lambda-string* nil)
        ,defsystem
-       (assert-equal (asdf:component-encoding (asdf:find-component ',sys ',path)) ',encoding)
-       ,@(when op `((asdf:operate ',op ',(second defsystem))))
+       (let ((c (asdf:find-component ',sys ',path)))
+         (assert-equal (asdf:component-encoding c) ',encoding)
+         (loop :for o :in (asdf:output-files (asdf::make-operation 'asdf:compile-op) c)
+               :do (asdf::delete-file-if-exists o)))
+       ,@(when op
+           `((asdf:operate ',op ',(second defsystem))))
        ,@body
-       (eval `(assert-equal (string-char-codes ,*lambda-string*) (expected-char-codes ',',encoding))))))
+       (eval `(assert-equal (string-char-codes ,*lambda-string*)
+                            (expected-char-codes ',',encoding))))))
 
 (quit-on-error
 
@@ -87,6 +88,7 @@
     (defsystem :test-system-encoding-l1
       :encoding :latin-1
       :components ((:file "lambda"))))
+  #-ecl-bytecmp
   (with-test (:latin-1 :op asdf:load-op)
     (defsystem :test-system-encoding-l1-load-op
       :encoding :latin-1