Index: /branches/working-0711/ccl/compiler/nx-basic.lisp
===================================================================
--- /branches/working-0711/ccl/compiler/nx-basic.lisp	(revision 13196)
+++ /branches/working-0711/ccl/compiler/nx-basic.lisp	(revision 13197)
@@ -537,4 +537,7 @@
        ,@body))))
 
+(defvar *strict-checking* nil
+  "If true, issues warnings/errors in more cases, e.g. for valid but non-portable code")
+
 
 ;; Should be true if compiler warnings UI doesn't use source locations, false if it does.
Index: /branches/working-0711/ccl/level-1/l1-utils.lisp
===================================================================
--- /branches/working-0711/ccl/level-1/l1-utils.lisp	(revision 13196)
+++ /branches/working-0711/ccl/level-1/l1-utils.lisp	(revision 13197)
@@ -423,5 +423,6 @@
       (let* ((old-value (%sym-global-value var)))
 	(unless (eq old-value (%unbound-marker-8))
-	  (if (similar-as-constants-p (%sym-global-value var) value)
+	  (if (or (eql old-value value)
+                  (and (not *strict-checking*) (similar-as-constants-p old-value value)))
 	    (return)
 	    ;; This should really be a cell error, allow options other than
Index: /branches/working-0711/ccl/library/leaks.lisp
===================================================================
--- /branches/working-0711/ccl/library/leaks.lisp	(revision 13196)
+++ /branches/working-0711/ccl/library/leaks.lisp	(revision 13197)
@@ -272,5 +272,5 @@
         (format t "~&~A" i))
       (format t "~&Freed but not malloced:~%~{~A~%~}" frees)
-      (format t "~&total-malloc-not-freed: ~~A ~A free not malloc: ~A"
+      (format t "~&total-malloc-not-freed: ~A ~A free not malloc: ~A"
               (/ malloc-sum 1024.0)
               (length mallocs)
