diff --git a/include/jemalloc/internal/large.h b/include/jemalloc/internal/large.h
index afaa6c3..8345f89 100644
--- a/include/jemalloc/internal/large.h
+++ b/include/jemalloc/internal/large.h
@@ -19,8 +19,11 @@
 #ifdef JEMALLOC_JET
 typedef void (large_dalloc_junk_t)(void *, size_t);
 extern large_dalloc_junk_t *large_dalloc_junk;
+typedef void (large_dalloc_maybe_junk_t)(tsdn_t *, void *, size_t);
+extern large_dalloc_maybe_junk_t *large_dalloc_maybe_junk;
 #else
 void	large_dalloc_junk(void *ptr, size_t usize);
+void	large_dalloc_maybe_junk(tsdn_t *tsdn, void *ptr, size_t usize);
 #endif
 void	large_dalloc_junked_locked(tsdn_t *tsdn, extent_t *extent);
 void	large_dalloc(tsdn_t *tsdn, extent_t *extent);
diff --git a/include/jemalloc/internal/private_symbols.txt b/include/jemalloc/internal/private_symbols.txt
index 07e7f28..d2c882d 100644
--- a/include/jemalloc/internal/private_symbols.txt
+++ b/include/jemalloc/internal/private_symbols.txt
@@ -250,6 +250,7 @@
 large_dalloc
 large_dalloc_junk
 large_dalloc_junked_locked
+large_dalloc_maybe_junk
 large_malloc
 large_palloc
 large_prof_tctx_get
diff --git a/src/large.c b/src/large.c
index 5c7b445..325b5f1 100644
--- a/src/large.c
+++ b/src/large.c
@@ -76,7 +76,11 @@
 large_dalloc_junk_t *large_dalloc_junk = JEMALLOC_N(n_large_dalloc_junk);
 #endif
 
-static void
+#ifdef JEMALLOC_JET
+#undef large_dalloc_maybe_junk
+#define	large_dalloc_maybe_junk JEMALLOC_N(n_large_dalloc_maybe_junk)
+#endif
+void
 large_dalloc_maybe_junk(tsdn_t *tsdn, void *ptr, size_t usize)
 {
 
@@ -87,9 +91,14 @@
 		 */
 		if (!config_munmap || (have_dss && extent_in_dss(tsdn, ptr)))
 			large_dalloc_junk(ptr, usize);
-			memset(ptr, JEMALLOC_FREE_JUNK, usize);
 	}
 }
+#ifdef JEMALLOC_JET
+#undef large_dalloc_maybe_junk
+#define	large_dalloc_maybe_junk JEMALLOC_N(large_dalloc_maybe_junk)
+large_dalloc_maybe_junk_t *large_dalloc_maybe_junk =
+    JEMALLOC_N(n_large_dalloc_maybe_junk);
+#endif
 
 static bool
 large_ralloc_no_move_shrink(tsdn_t *tsdn, extent_t *extent, size_t usize)
diff --git a/test/unit/junk.c b/test/unit/junk.c
index 7a92350..dea0f61 100644
--- a/test/unit/junk.c
+++ b/test/unit/junk.c
@@ -10,6 +10,7 @@
 
 static arena_dalloc_junk_small_t *arena_dalloc_junk_small_orig;
 static large_dalloc_junk_t *large_dalloc_junk_orig;
+static large_dalloc_maybe_junk_t *large_dalloc_maybe_junk_orig;
 static void *watch_for_junking;
 static bool saw_junking;
 
@@ -39,13 +40,23 @@
 static void
 large_dalloc_junk_intercept(void *ptr, size_t usize)
 {
+	size_t i;
 
 	large_dalloc_junk_orig(ptr, usize);
-	/*
-	 * The conditions under which junk filling actually occurs are nuanced
-	 * enough that it doesn't make sense to duplicate the decision logic in
-	 * test code, so don't actually check that the region is junk-filled.
-	 */
+	for (i = 0; i < usize; i++) {
+		assert_u_eq(((uint8_t *)ptr)[i], JEMALLOC_FREE_JUNK,
+		    "Missing junk fill for byte %zu/%zu of deallocated region",
+		    i, usize);
+	}
+	if (ptr == watch_for_junking)
+		saw_junking = true;
+}
+
+static void
+large_dalloc_maybe_junk_intercept(tsdn_t *tsdn, void *ptr, size_t usize)
+{
+
+	large_dalloc_maybe_junk_orig(tsdn, ptr, usize);
 	if (ptr == watch_for_junking)
 		saw_junking = true;
 }
@@ -61,6 +72,8 @@
 		arena_dalloc_junk_small = arena_dalloc_junk_small_intercept;
 		large_dalloc_junk_orig = large_dalloc_junk;
 		large_dalloc_junk = large_dalloc_junk_intercept;
+		large_dalloc_maybe_junk_orig = large_dalloc_maybe_junk;
+		large_dalloc_maybe_junk = large_dalloc_maybe_junk_intercept;
 	}
 
 	sz_prev = 0;
@@ -111,6 +124,7 @@
 	if (opt_junk_free) {
 		arena_dalloc_junk_small = arena_dalloc_junk_small_orig;
 		large_dalloc_junk = large_dalloc_junk_orig;
+		large_dalloc_maybe_junk = large_dalloc_maybe_junk_orig;
 	}
 }
 
