diff --git a/compiler/main.lisp b/compiler/main.lisp
index 2fa6a056f602267093957d02910040d65e15de26..543c5a8a8f928f803ae9950f0197f10eb61f2b42 100644
--- a/compiler/main.lisp
+++ b/compiler/main.lisp
@@ -223,6 +223,9 @@
 	(event reoptimize-maxed-out)
 	(return))
       (incf loop-count)))
+  
+  (maphash #'note-failed-optimization *failed-optimizations*)
+  (clrhash *failed-optimizations*)
   (undefined-value))
 
 
@@ -997,7 +1000,7 @@
 	(dolist (component components)
 	  (clear-ir1-info component)))))
     
-  (ir1-finalize)
+  (maphash #'check-free-function *free-functions*)
   (undefined-value))