diff --git a/src/buffer.c b/src/buffer.c
index ad484b4..5e885b9 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -5082,7 +5082,7 @@
     set_last_cursor(curwin);
 #endif
 
-    fprintf(fp, _("\n# Buffer list:\n"));
+    fputs(_("\n# Buffer list:\n"), fp);
     for (buf = firstbuf; buf != NULL ; buf = buf->b_next)
     {
 	if (buf->b_fname == NULL
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 20a39ff..f78bf96 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -2080,9 +2080,9 @@
 	/* Write the info: */
 	fprintf(fp_out, _("# This viminfo file was generated by Vim %s.\n"),
 							  VIM_VERSION_MEDIUM);
-	fprintf(fp_out, _("# You may edit it if you're careful!\n\n"));
+	fputs(_("# You may edit it if you're careful!\n\n"), fp_out);
 #ifdef FEAT_MBYTE
-	fprintf(fp_out, _("# Value of 'encoding' when this file was written\n"));
+	fputs(_("# Value of 'encoding' when this file was written\n"), fp_out);
 	fprintf(fp_out, "*encoding=%s\n\n", p_enc);
 #endif
 	write_viminfo_search_pattern(fp_out);
@@ -5422,7 +5422,7 @@
 {
     if (get_viminfo_parameter('/') != 0 && old_sub != NULL)
     {
-	fprintf(fp, _("\n# Last Substitute String:\n$"));
+	fputs(_("\n# Last Substitute String:\n$"), fp);
 	viminfo_writestring(fp, old_sub);
     }
 }
diff --git a/src/mark.c b/src/mark.c
index ae31cf0..2669cb1 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -1434,7 +1434,7 @@
     if (get_viminfo_parameter('f') == 0)
 	return;
 
-    fprintf(fp, _("\n# File marks:\n"));
+    fputs(_("\n# File marks:\n"), fp);
 
     /*
      * Find a mark that is the same file and position as the cursor.
@@ -1469,7 +1469,7 @@
 
 #ifdef FEAT_JUMPLIST
     /* Write the jumplist with -' */
-    fprintf(fp, _("\n# Jumplist (newest first):\n"));
+    fputs(_("\n# Jumplist (newest first):\n"), fp);
     setpcmark();	/* add current cursor position */
     cleanup_jumplist();
     for (fm = &curwin->w_jumplist[curwin->w_jumplistlen - 1];
@@ -1570,7 +1570,7 @@
 	set_last_cursor(curwin);
 #endif
 
-    fprintf(fp_out, _("\n# History of marks within files (newest to oldest):\n"));
+    fputs(_("\n# History of marks within files (newest to oldest):\n"), fp_out);
     count = 0;
     for (buf = firstbuf; buf != NULL; buf = buf->b_next)
     {
diff --git a/src/misc2.c b/src/misc2.c
index 1cf198f..2db4b66 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -784,7 +784,7 @@
     {
 	printf("\r\n");
 	if (mem_frees[i] > mem_allocs[i])
-	    printf(_("ERROR: "));
+	    puts(_("ERROR: "));
 	printf("[>%d / %4lu-%-4lu]", i, mem_allocs[i], mem_frees[i]);
     }
 
@@ -827,7 +827,7 @@
 {
     char_u *p;
 
-    p = (lalloc((long_u)size, TRUE));
+    p = lalloc((long_u)size, TRUE);
     if (p != NULL)
 	(void)vim_memset(p, 0, (size_t)size);
     return p;
@@ -3802,7 +3802,7 @@
 /*
  * Prepare for initializing encryption.  If already doing encryption then save
  * the state.
- * Must always be called symmetrycally with crypt_pop_state().
+ * Must always be called symmetrically with crypt_pop_state().
  */
     void
 crypt_push_state()
@@ -3828,7 +3828,7 @@
 /*
  * End encryption.  If doing encryption before crypt_push_state() then restore
  * the saved state.
- * Must always be called symmetrycally with crypt_push_state().
+ * Must always be called symmetrically with crypt_push_state().
  */
     void
 crypt_pop_state()
