diff --git a/include/page0zip.ic b/include/page0zip.ic
index 77d3d317959bb1cacb17aff71d1df9321b3b7ea9..23b2603869d99f06e3bc09ed4cecbf5000ce0820 100644
--- a/include/page0zip.ic
+++ b/include/page0zip.ic
@@ -215,7 +215,7 @@ page_zip_get_trailer_len(
 	ulint	uncompressed_size;
 
 	ut_ad(page_zip_simple_validate(page_zip));
-	UNIV_MEM_ASSERT_RW(page_zip, page_zip_get_size(page_zip));
+	UNIV_MEM_ASSERT_RW(page_zip->data, page_zip_get_size(page_zip));
 
 	if (UNIV_UNLIKELY(!page_is_leaf(page_zip->data))) {
 		uncompressed_size = PAGE_ZIP_DIR_SLOT_SIZE
@@ -356,7 +356,7 @@ page_zip_write_header(
 
 	ut_ad(buf_frame_get_page_zip(str) == page_zip);
 	ut_ad(page_zip_simple_validate(page_zip));
-	UNIV_MEM_ASSERT_RW(page_zip, page_zip_get_size(page_zip));
+	UNIV_MEM_ASSERT_RW(page_zip->data, page_zip_get_size(page_zip));
 
 	pos = page_offset(str);
 
diff --git a/page/page0zip.c b/page/page0zip.c
index 63f80ffded6cbc5bbc5f4036c26c7785dfd3f5d0..11c4345a8219748ce5d01a173923558468e0f59d 100644
--- a/page/page0zip.c
+++ b/page/page0zip.c
@@ -2678,12 +2678,16 @@ page_zip_validate(
 	temp_page = ut_align(temp_page_buf, UNIV_PAGE_SIZE);
 
 #ifdef UNIV_DEBUG_VALGRIND
-	/* Get some more information if the UNIV_MEM_ASSERT_RW below fail. */
+	/* Get detailed information on the valid bits in case the
+	UNIV_MEM_ASSERT_RW() checks fail. */
 	VALGRIND_GET_VBITS(page, temp_page, UNIV_PAGE_SIZE);
-	VALGRIND_GET_VBITS(page_zip, &temp_page_zip, sizeof temp_page_zip);
-#endif /* UNIV_DEBUG_VALGRIND */
 	UNIV_MEM_ASSERT_RW(page, UNIV_PAGE_SIZE);
+	VALGRIND_GET_VBITS(page_zip, &temp_page_zip, sizeof temp_page_zip);
+	UNIV_MEM_ASSERT_RW(page_zip, sizeof *page_zip);
+	VALGRIND_GET_VBITS(page_zip->data, temp_page,
+			   page_zip_get_size(page_zip));
 	UNIV_MEM_ASSERT_RW(page_zip->data, page_zip_get_size(page_zip));
+#endif /* UNIV_DEBUG_VALGRIND */
 
 	temp_page_zip = *page_zip;
 	valid = page_zip_decompress(&temp_page_zip, temp_page);