diff --git a/src/ops.c b/src/ops.c
index 3fe69fc..cf7bdb1 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -1002,18 +1002,18 @@
 #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 @@
     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 @@
 }
 
 /*
- * 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 d7bd928..6177daf 100644
--- a/src/option.c
+++ b/src/option.c
@@ -5275,7 +5275,7 @@
  * 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 @@
 	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 */
     }
 
