diff --git a/src/globals.h b/src/globals.h
index a7cc171..54785a4 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -555,6 +555,10 @@
 EXTERN buf_T	*lastbuf INIT(= NULL);	/* last buffer */
 EXTERN buf_T	*curbuf INIT(= NULL);	/* currently active buffer */
 
+/* Flag that is set when switching off 'swapfile'.  It means that all blocks
+ * are to be loaded into memory.  Shouldn't be global... */
+EXTERN int	mf_dont_release INIT(= FALSE);	/* don't release blocks */
+
 /*
  * List of files being edited (global argument list).  curwin->w_alist points
  * to this when the window is using the global argument list.
diff --git a/src/memfile.c b/src/memfile.c
index eac0c08..d5caf3b 100644
--- a/src/memfile.c
+++ b/src/memfile.c
@@ -76,7 +76,6 @@
 #define MEMFILE_PAGE_SIZE 4096		/* default page size */
 
 static long_u	total_mem_used = 0;	/* total memory used for memfiles */
-static int	dont_release = FALSE;	/* don't release blocks */
 
 static void mf_ins_hash __ARGS((memfile_T *, bhdr_T *));
 static void mf_rem_hash __ARGS((memfile_T *, bhdr_T *));
@@ -279,10 +278,10 @@
     if (getlines)
     {
 	/* get all blocks in memory by accessing all lines (clumsy!) */
-	dont_release = TRUE;
+	mf_dont_release = TRUE;
 	for (lnum = 1; lnum <= buf->b_ml.ml_line_count; ++lnum)
 	    (void)ml_get_buf(buf, lnum, FALSE);
-	dont_release = FALSE;
+	mf_dont_release = FALSE;
 	/* TODO: should check if all blocks are really in core */
     }
 
@@ -830,7 +829,7 @@
     buf_T	*buf;
 
     /* don't release while in mf_close_file() */
-    if (dont_release)
+    if (mf_dont_release)
 	return NULL;
 
     /*
diff --git a/src/memline.c b/src/memline.c
index b8d13d9..6f59a9a 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -2074,8 +2074,10 @@
 /*
  * See if it is the same line as requested last time.
  * Otherwise may need to flush last used line.
+ * Don't use the last used line when 'swapfile' is reset, need to load all
+ * blocks.
  */
-    if (buf->b_ml.ml_line_lnum != lnum)
+    if (buf->b_ml.ml_line_lnum != lnum || mf_dont_release)
     {
 	ml_flush_line(buf);
 
@@ -3200,13 +3202,16 @@
      * If not, flush and release the locked block.
      * Don't do this for ML_INSERT_SAME, because the stack need to be updated.
      * Don't do this for ML_FLUSH, because we want to flush the locked block.
+     * Don't do this when 'swapfile' is reset, we want to load all the blocks.
      */
     if (buf->b_ml.ml_locked)
     {
-	if (ML_SIMPLE(action) && buf->b_ml.ml_locked_low <= lnum
-					  && buf->b_ml.ml_locked_high >= lnum)
+	if (ML_SIMPLE(action)
+		&& buf->b_ml.ml_locked_low <= lnum
+		&& buf->b_ml.ml_locked_high >= lnum
+		&& !mf_dont_release)
 	{
-		/* remember to update pointer blocks and stack later */
+	    /* remember to update pointer blocks and stack later */
 	    if (action == ML_INSERT)
 	    {
 		++(buf->b_ml.ml_locked_lineadd);
diff --git a/src/version.c b/src/version.c
index 55fdbac..676f901 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    192,
+/**/
     191,
 /**/
     190,
