diff --git a/src/lisp/gencgc.c b/src/lisp/gencgc.c
index 5c9fcd8ae21467030e47df6a90d3f67ca93c9e50..e02e52ae08925e598145cacfc1eadcd34edb1724 100644
--- a/src/lisp/gencgc.c
+++ b/src/lisp/gencgc.c
@@ -324,7 +324,11 @@ enum gencgc_unmap_mode {
  * don't unmap.
  */
 
+#if defined(DARWIN) || defined(__linux__) || defined(sparc)
+enum gencgc_unmap_mode gencgc_unmap_zero = MODE_LAZY;
+#else
 enum gencgc_unmap_mode gencgc_unmap_zero = MODE_MEMSET;
+#endif
 
 /*
  * Enable checking that newly allocated regions are zero filled.
@@ -940,7 +944,10 @@ handle_heap_overflow(const char *msg, int size)
 #endif
 }
 
-boolean gencgc_debug_madvise = TRUE;
+/*
+ * Enable debug messages for MODE_MADVISE and MODE_LAZY
+ */
+boolean gencgc_debug_madvise = FALSE;
 
 static inline void
 handle_madvise_first_page(int first_page)