diff --git a/runtime/tutor/Makefile b/runtime/tutor/Makefile
index d1950511dfd21b25997b85d2229c2415f1f7c24b..188c9899727a35dc229f82d13121b16e2895ae51 100644
--- a/runtime/tutor/Makefile
+++ b/runtime/tutor/Makefile
@@ -8,7 +8,8 @@
 all: tutor.ja.sjis tutor.ja.euc \
 	tutor.ko.euc \
 	tutor.ru tutor.ru.cp1251 \
-	tutor.gr tutor.gr.cp737
+	tutor.gr tutor.gr.cp737 \
+	tutor.hu
 
 tutor.ja.sjis: tutor.ja.utf-8
 	nkf -WXs tutor.ja.utf-8 > tutor.ja.sjis
@@ -30,3 +31,6 @@ tutor.gr: tutor.gr.utf-8
 
 tutor.gr.cp737: tutor.gr.utf-8
 	iconv -f UTF-8 -t cp737 tutor.gr.utf-8 > tutor.gr.cp737
+
+tutor.hu: tutor.hu.utf-8
+	iconv -f UTF-8 -t ISO-8859-2 tutor.hu.utf-8 > tutor.hu
diff --git a/src/ops.c b/src/ops.c
index 3fe69fc75e752243ef8b8f415ae50c71889eeb35..cf7bdb1ad47804e48be28d246206cb45ca399292 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -1002,18 +1002,18 @@ yank_register_mline(regname)
 #endif
 
 /*
- * start or stop recording into a yank register
+ * Start or stop recording into a yank register.
  *
- * return FAIL for failure, OK otherwise
+ * Return FAIL for failure, OK otherwise.
  */
     int
 do_record(c)
     int c;
 {
-    char_u	*p;
-    static int	regname;
-    struct yankreg *old_y_previous, *old_y_current;
-    int		retval;
+    char_u	    *p;
+    static int	    regname;
+    struct yankreg  *old_y_previous, *old_y_current;
+    int		    retval;
 
     if (Recording == FALSE)	    /* start recording */
     {
@@ -1031,9 +1031,9 @@ do_record(c)
     else			    /* stop recording */
     {
 	/*
-	 * Get the recorded key hits.  K_SPECIAL and CSI will be escaped, so
-	 * that the register can be put into the typeahead buffer without
-	 * translation.
+	 * Get the recorded key hits.  K_SPECIAL and CSI will be escaped, this
+	 * needs to be removed again to put it in a register.  exec_reg then
+	 * adds the escaping back later.
 	 */
 	Recording = FALSE;
 	MSG("");
@@ -1417,13 +1417,14 @@ stuffescaped(arg, literally)
 }
 
 /*
- * If "regname" is a special register, return a pointer to its value.
+ * If "regname" is a special register, return TRUE and store a pointer to its
+ * value in "argp".
  */
     int
 get_spec_reg(regname, argp, allocated, errmsg)
     int		regname;
     char_u	**argp;
-    int		*allocated;
+    int		*allocated;	/* return: TRUE when value was allocated */
     int		errmsg;		/* give error message when failing */
 {
     int		cnt;
diff --git a/src/option.c b/src/option.c
index d7bd92894d44e658e81bb73d76b8f9797e5bdc34..6177daf181bc6643f4d50589964e9f860eb32e88 100644
--- a/src/option.c
+++ b/src/option.c
@@ -5275,7 +5275,7 @@ insecure_flag(opt_idx, opt_flags)
  * The string is copied into allocated memory.
  * if ("opt_idx" == -1) "name" is used, otherwise "opt_idx" is used.
  * When "set_sid" is zero set the scriptID to current_SID.  When "set_sid" is
- * SID_NONE don't set the scriptID.  Otherwose set the scriptID to "set_sid".
+ * SID_NONE don't set the scriptID.  Otherwise set the scriptID to "set_sid".
  */
 /*ARGSUSED*/
     void
@@ -7144,6 +7144,8 @@ set_bool_option(opt_idx, varp, value, opt_flags)
 	if (curbuf->b_p_swf && p_uc)
 	    ml_open_file(curbuf);		/* create the swap file */
 	else
+	    /* no need to reset curbuf->b_may_swap, ml_open_file() will check
+	     * buf->b_p_swf */
 	    mf_close_file(curbuf, TRUE);	/* remove the swap file */
     }