diff --git a/Lib/test/test_mmap.py b/Lib/test/test_mmap.py
index 6fecaf5..c06b757 100644
--- a/Lib/test/test_mmap.py
+++ b/Lib/test/test_mmap.py
@@ -41,6 +41,10 @@
             self.assertEqual(m[0], '\0')
             self.assertEqual(m[0:3], '\0\0\0')
 
+            # Shouldn't crash on boundary (Issue #5292)
+            self.assertRaises(IndexError, m.__getitem__, len(m))
+            self.assertRaises(IndexError, m.__setitem__, len(m), '\0')
+
             # Modify the file's content
             m[0] = '3'
             m[PAGESIZE +3: PAGESIZE +3+3] = 'bar'
@@ -413,6 +417,27 @@
             m = mmap.mmap(f.fileno(), mapsize - halfsize, offset=halfsize)
             self.assertEqual(m[0:3], 'foo')
             f.close()
+
+            # Try resizing map
+            try:
+                m.resize(512)
+            except SystemError:
+                pass
+            else:
+                # resize() is supported
+                self.assertEqual(len(m), 512)
+                # Check that we can no longer seek beyond the new size.
+                self.assertRaises(ValueError, m.seek, 513, 0)
+                # Check that the content is not changed
+                self.assertEqual(m[0:3], 'foo')
+
+                # Check that the underlying file is truncated too
+                f = open(TESTFN)
+                f.seek(0, 2)
+                self.assertEqual(f.tell(), halfsize + 512)
+                f.close()
+                self.assertEqual(m.size(), halfsize + 512)
+
             m.close()
 
         finally:
diff --git a/Misc/NEWS b/Misc/NEWS
index 45d145e..2ebd6cc 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -80,6 +80,11 @@
 Library
 -------
 
+- Issue #5292: Fixed mmap crash on its boundary access m[len(m)].
+
+- Issue #5282: Fixed mmap resize on 32bit windows and unix. When offset > 0,
+  The file was resized to wrong size.
+
 - Issue #5287: Add exception handling around findCaller() call in logging to
   help out IronPython.
 
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index a03957c..fad60d1 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -444,7 +444,7 @@
 		off_lo = (DWORD)(self->offset & 0xFFFFFFFF);
 #else
 		newSizeHigh = 0;
-		newSizeLow = (DWORD)new_size;
+		newSizeLow = (DWORD)(self->offset + new_size);
 		off_hi = 0;
 		off_lo = (DWORD)self->offset;
 #endif
@@ -490,7 +490,7 @@
 	} else {
 		void *newmap;
 
-		if (ftruncate(self->fd, new_size) == -1) {
+		if (ftruncate(self->fd, self->offset + new_size) == -1) {
 			PyErr_SetFromErrno(mmap_module_error);
 			return NULL;
 		}
@@ -731,7 +731,7 @@
 			return NULL;
 		if (i < 0)
 			i += self->size;
-		if (i < 0 || (size_t)i > self->size) {
+		if (i < 0 || (size_t)i >= self->size) {
 			PyErr_SetString(PyExc_IndexError,
 				"mmap index out of range");
 			return NULL;
@@ -872,7 +872,7 @@
 			return -1;
 		if (i < 0)
 			i += self->size;
-		if (i < 0 || (size_t)i > self->size) {
+		if (i < 0 || (size_t)i >= self->size) {
 			PyErr_SetString(PyExc_IndexError,
 				"mmap index out of range");
 			return -1;
