diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index 7b54f46..c1aeeb8 100644
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -355,12 +355,13 @@
 ! else
 LIBC = /fixed:no
 ! endif
-
-! ifndef USE_MSVCRT
-LIBC = $(LIBC) libcd.lib
-! else
+! ifdef USE_MSVCRT
 CFLAGS = $(CFLAGS) -MDd
 LIBC = $(LIBC) msvcrtd.lib
+! elseif defined(MULTITHREADED)
+LIBC = $(LIBC) libcmtd.lib
+! else
+LIBC = $(LIBC) libcd.lib
 ! endif
 !endif # DEBUG
 
@@ -837,7 +838,7 @@
 	$(CC) $(CFLAGS) $(PERL_INC) if_perlsfio.c
 
 $(OUTDIR)/if_mzsch.obj: $(OUTDIR) if_mzsch.c  $(INCL)
-	$(CC) $(CFLAGS) $(PERL_INC) if_mzsch.c
+	$(CC) $(CFLAGS) if_mzsch.c \
 		-DMZSCHEME_COLLECTS=\"$(MZSCHEME:\=\\)\\collects\"
 
 $(OUTDIR)/if_python.obj: $(OUTDIR) if_python.c  $(INCL)
diff --git a/src/if_sniff.c b/src/if_sniff.c
index 7730e5b..1485d5e 100644
--- a/src/if_sniff.c
+++ b/src/if_sniff.c
@@ -817,15 +817,16 @@
 		vi_open_file(file);
 	    else if (buf!=curbuf)
 	    {
-		vim_snprintf(VICommand, sizeof(VICommand), SelectBuf, file);
+		vim_snprintf(VICommand, sizeof(VICommand),
+						     (char *)SelectBuf, file);
 		vi_exec_cmd(VICommand);
 	    }
 	    if (command == 'o')
 		vi_set_cursor_pos((long)position);
 	    else
 	    {
-		vim_snprintf(VICommand, sizeof(VICommand), GotoLine,
-							       (int)position);
+		vim_snprintf(VICommand, sizeof(VICommand),
+					     (char *)GotoLine, (int)position);
 		vi_exec_cmd(VICommand);
 	    }
 	    checkpcmark();	/* [mark.c] */
@@ -854,7 +855,8 @@
 	    buf = vi_find_buffer(file);
 	    if (buf && !buf->b_changed) /* delete buffer only if not modified */
 	    {
-		vim_snprintf(VICommand, sizeof(VICommand), DeleteBuf, file);
+		vim_snprintf(VICommand, sizeof(VICommand),
+						     (char *)DeleteBuf, file);
 		vi_exec_cmd(VICommand);
 	    }
 	    vi_open_file(new_path);
@@ -876,8 +878,8 @@
 		    buf->b_flags |= BF_CHECK_RO + BF_NEVERLOADED;
 		    if (writable && !buf->b_changed)
 		    {
-			vim_snprintf(VICommand, sizeof(VICommand), UnloadBuf,
-									file);
+			vim_snprintf(VICommand, sizeof(VICommand),
+						     (char *)UnloadBuf, file);
 			vi_exec_cmd(VICommand);
 		    }
 		}
@@ -897,7 +899,8 @@
 
 	    if (tab_width > 0 && tab_width <= 16)
 	    {
-		vim_snprintf(VICommand, sizeof(VICommand), SetTab, tab_width);
+		vim_snprintf(VICommand, sizeof(VICommand),
+						   (char *)SetTab, tab_width);
 		vi_exec_cmd(VICommand);
 	    }
 	    break;
@@ -912,12 +915,12 @@
 	}
 	case 'A' :  /* Warning/Info msg */
 	    vi_msg(arguments);
-	    if (!strncmp(arguments, "Disconnected", 12)) /* "Disconnected ..." */
+	    if (!strncmp(arguments, "Disconnected", 12))
 		sniff_disconnect(1);	/* unexpected disconnection */
 	    break;
 	case 'a' :  /* Error msg */
 	    vi_error_msg(arguments);
-	    if (!strncmp(arguments, "Cannot connect", 14)) /* "Cannot connect ..." */
+	    if (!strncmp(arguments, "Cannot connect", 14))
 		sniff_disconnect(1);
 	    break;
 
