diff --git a/src/if_perl.xs b/src/if_perl.xs
index 14cb86f..ee3f15f 100644
--- a/src/if_perl.xs
+++ b/src/if_perl.xs
@@ -1056,7 +1056,6 @@
     int i;
     long lnum;
     char *line;
-    buf_T *savebuf;
     PPCODE:
     if (buf_valid(vimbuf))
     {
@@ -1069,14 +1068,31 @@
 	    line = SvPV(ST(i),PL_na);
 	    if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL)
 	    {
-		savebuf = curbuf;
+    #ifdef FEAT_AUTOCMD
+		aco_save_T	aco;
+
+		/* set curwin/curbuf for "vimbuf" and save some things */
+		aucmd_prepbuf(&aco, vimbuf);
+    #else
+		buf_T	*save_curbuf = curbuf;
+
 		curbuf = vimbuf;
+		curwin->w_buffer = vimbuf;
+    #endif
 		if (u_savesub(lnum) == OK)
 		{
 		    ml_replace(lnum, (char_u *)line, TRUE);
 		    changed_bytes(lnum, 0);
 		}
-		curbuf = savebuf;
+
+    #ifdef FEAT_AUTOCMD
+		/* restore curwin/curbuf and a few other things */
+		aucmd_restbuf(&aco);
+		/* Careful: autocommands may have made "vimbuf" invalid! */
+    #else
+		curwin->w_buffer = save_curbuf;
+		curbuf = save_curbuf;
+    #endif
 	    }
 	}
     }
@@ -1087,7 +1103,6 @@
 
     PREINIT:
     long i, lnum = 0, count = 0;
-    buf_T *savebuf;
     PPCODE:
     if (buf_valid(vimbuf))
     {
@@ -1114,16 +1129,31 @@
 	    {
 		if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count)
 		{
-		    savebuf = curbuf;
+		    buf_T	*save_curbuf = curbuf;
+    #ifdef FEAT_AUTOCMD
+		    aco_save_T	aco;
+
+		    /* set curwin/curbuf for "vimbuf" and save some things */
+		    aucmd_prepbuf(&aco, vimbuf);
+    #else
 		    curbuf = vimbuf;
+		    curwin->w_buffer = vimbuf;
+    #endif
 		    if (u_savedel(lnum, 1) == OK)
 		    {
 			ml_delete(lnum, 0);
 			deleted_lines_mark(lnum, 1L);
-			if (savebuf == curbuf)
+			if (save_curbuf == curbuf)
 			    check_cursor();
 		    }
-		    curbuf = savebuf;
+    #ifdef FEAT_AUTOCMD
+		    /* restore curwin/curbuf and a few other things */
+		    aucmd_restbuf(&aco);
+		    /* Careful: autocommands may have made "vimbuf" invalid! */
+    #else
+		    curwin->w_buffer = save_curbuf;
+		    curbuf = save_curbuf;
+    #endif
 		    update_curbuf(VALID);
 		}
 	    }
@@ -1138,7 +1168,6 @@
     int		i;
     long	lnum;
     char	*line;
-    buf_T	*savebuf;
     PPCODE:
     if (buf_valid(vimbuf))
     {
@@ -1151,14 +1180,31 @@
 	    line = SvPV(ST(i),PL_na);
 	    if (lnum >= 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL)
 	    {
-		savebuf = curbuf;
+    #ifdef FEAT_AUTOCMD
+		aco_save_T	aco;
+
+		/* set curwin/curbuf for "vimbuf" and save some things */
+		aucmd_prepbuf(&aco, vimbuf);
+    #else
+		buf_T	*save_curbuf = curbuf;
+
 		curbuf = vimbuf;
+		curwin->w_buffer = vimbuf;
+    #endif
 		if (u_inssub(lnum + 1) == OK)
 		{
 		    ml_append(lnum, (char_u *)line, (colnr_T)0, FALSE);
 		    appended_lines_mark(lnum, 1L);
 		}
-		curbuf = savebuf;
+
+    #ifdef FEAT_AUTOCMD
+		/* restore curwin/curbuf and a few other things */
+		aucmd_restbuf(&aco);
+		/* Careful: autocommands may have made "vimbuf" invalid! */
+    #else
+		curwin->w_buffer = save_curbuf;
+		curbuf = save_curbuf;
+    #endif
 		update_curbuf(VALID);
 	    }
 	}
diff --git a/src/version.c b/src/version.c
index ce312d4..a2e3369 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    44,
+/**/
     43,
 /**/
     42,
