diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index d1d3ae1..1dcbb2b 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -4123,6 +4123,7 @@
 	}
 	do_error = TRUE;
 	do_print = FALSE;
+	do_count = FALSE;
 	do_ic = 0;
     }
     while (*cmd)
diff --git a/src/main.c b/src/main.c
index fd4f4e4..19bdb09 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2061,6 +2061,12 @@
 		    mch_exit(2);
 	    }
 #endif
+
+#ifdef USE_FNAME_CASE
+	    /* Make the case of the file name match the actual file. */
+	    fname_case(p, 0);
+#endif
+
 	    alist_add(&global_alist, p,
 #if (!defined(UNIX) && !defined(__EMX__)) || defined(ARCHIE)
 		    parmp->literal ? 2 : 0	/* add buffer nr after exp. */
diff --git a/src/misc1.c b/src/misc1.c
index 2c42eb9..bef297c 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -8576,7 +8576,7 @@
     }
 
     /* compile the regexp into a program */
-#ifdef MACOS_X /* Can/Should we use CASE_INSENSITIVE_FILENAME instead ?*/
+#ifdef CASE_INSENSITIVE_FILENAME
     regmatch.rm_ic = TRUE;		/* Behave like Terminal.app */
 #else
     regmatch.rm_ic = FALSE;		/* Don't ever ignore case */
diff --git a/src/proto/os_unix.pro b/src/proto/os_unix.pro
index a6ae6ec..8ec3db6 100644
--- a/src/proto/os_unix.pro
+++ b/src/proto/os_unix.pro
@@ -1,72 +1,73 @@
 /* os_unix.c */
-void mch_write __ARGS((char_u *s, int len));
-int mch_inchar __ARGS((char_u *buf, int maxlen, long wtime, int tb_change_cnt));
-int mch_char_avail __ARGS((void));
-long_u mch_total_mem __ARGS((int special));
-void mch_delay __ARGS((long msec, int ignoreinput));
-int mch_stackcheck __ARGS((char *p));
-void mch_startjmp __ARGS((void));
-void mch_endjmp __ARGS((void));
-void mch_didjmp __ARGS((void));
-void mch_suspend __ARGS((void));
-void mch_init __ARGS((void));
-void reset_signals __ARGS((void));
-int vim_handle_signal __ARGS((int sig));
-int mch_check_win __ARGS((int argc, char **argv));
-int mch_input_isatty __ARGS((void));
-int mch_can_restore_title __ARGS((void));
-int mch_can_restore_icon __ARGS((void));
-void mch_settitle __ARGS((char_u *title, char_u *icon));
-void mch_restore_title __ARGS((int which));
-int vim_is_xterm __ARGS((char_u *name));
-int use_xterm_mouse __ARGS((void));
-int vim_is_iris __ARGS((char_u *name));
-int vim_is_vt300 __ARGS((char_u *name));
-int vim_is_fastterm __ARGS((char_u *name));
-int mch_get_user_name __ARGS((char_u *s, int len));
-int mch_get_uname __ARGS((uid_t uid, char_u *s, int len));
-void mch_get_host_name __ARGS((char_u *s, int len));
-long mch_get_pid __ARGS((void));
-int mch_dirname __ARGS((char_u *buf, int len));
-void slash_adjust __ARGS((char_u *p));
-int mch_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
-int mch_isFullName __ARGS((char_u *fname));
-long mch_getperm __ARGS((char_u *name));
-int mch_setperm __ARGS((char_u *name, long perm));
-vim_acl_T mch_get_acl __ARGS((char_u *fname));
-void mch_set_acl __ARGS((char_u *fname, vim_acl_T aclent));
-void mch_free_acl __ARGS((vim_acl_T aclent));
-void mch_hide __ARGS((char_u *name));
-int mch_isdir __ARGS((char_u *name));
-int mch_can_exe __ARGS((char_u *name));
-int mch_nodetype __ARGS((char_u *name));
-void mch_early_init __ARGS((void));
-void mch_free_mem __ARGS((void));
-void mch_exit __ARGS((int r));
-void mch_settmode __ARGS((int tmode));
-void get_stty __ARGS((void));
-void mch_setmouse __ARGS((int on));
-void check_mouse_termcode __ARGS((void));
-int mch_screenmode __ARGS((char_u *arg));
-int mch_get_shellsize __ARGS((void));
-void mch_set_shellsize __ARGS((void));
-void mch_new_shellsize __ARGS((void));
-int mch_call_shell __ARGS((char_u *cmd, int options));
-void mch_breakcheck __ARGS((void));
-int mch_expandpath __ARGS((garray_T *gap, char_u *path, int flags));
-int mch_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
-int mch_has_exp_wildcard __ARGS((char_u *p));
-int mch_has_wildcard __ARGS((char_u *p));
-int mch_libcall __ARGS((char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result));
-void setup_term_clip __ARGS((void));
-void start_xterm_trace __ARGS((int button));
-void stop_xterm_trace __ARGS((void));
-void clear_xterm_clip __ARGS((void));
-int clip_xterm_own_selection __ARGS((VimClipboard *cbd));
-void clip_xterm_lose_selection __ARGS((VimClipboard *cbd));
-void clip_xterm_request_selection __ARGS((VimClipboard *cbd));
-void clip_xterm_set_selection __ARGS((VimClipboard *cbd));
-int xsmp_handle_requests __ARGS((void));
-void xsmp_init __ARGS((void));
-void xsmp_close __ARGS((void));
+extern void mch_write __ARGS((char_u *s, int len));
+extern int mch_inchar __ARGS((char_u *buf, int maxlen, long wtime, int tb_change_cnt));
+extern int mch_char_avail __ARGS((void));
+extern long_u mch_total_mem __ARGS((int special));
+extern void mch_delay __ARGS((long msec, int ignoreinput));
+extern int mch_stackcheck __ARGS((char *p));
+extern void mch_startjmp __ARGS((void));
+extern void mch_endjmp __ARGS((void));
+extern void mch_didjmp __ARGS((void));
+extern void mch_suspend __ARGS((void));
+extern void mch_init __ARGS((void));
+extern void reset_signals __ARGS((void));
+extern int vim_handle_signal __ARGS((int sig));
+extern int mch_check_win __ARGS((int argc, char **argv));
+extern int mch_input_isatty __ARGS((void));
+extern int mch_can_restore_title __ARGS((void));
+extern int mch_can_restore_icon __ARGS((void));
+extern void mch_settitle __ARGS((char_u *title, char_u *icon));
+extern void mch_restore_title __ARGS((int which));
+extern int vim_is_xterm __ARGS((char_u *name));
+extern int use_xterm_mouse __ARGS((void));
+extern int vim_is_iris __ARGS((char_u *name));
+extern int vim_is_vt300 __ARGS((char_u *name));
+extern int vim_is_fastterm __ARGS((char_u *name));
+extern int mch_get_user_name __ARGS((char_u *s, int len));
+extern int mch_get_uname __ARGS((uid_t uid, char_u *s, int len));
+extern void mch_get_host_name __ARGS((char_u *s, int len));
+extern long mch_get_pid __ARGS((void));
+extern int mch_dirname __ARGS((char_u *buf, int len));
+extern void slash_adjust __ARGS((char_u *p));
+extern int mch_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
+extern int mch_isFullName __ARGS((char_u *fname));
+extern void fname_case __ARGS((char_u *name, int len));
+extern long mch_getperm __ARGS((char_u *name));
+extern int mch_setperm __ARGS((char_u *name, long perm));
+extern vim_acl_T mch_get_acl __ARGS((char_u *fname));
+extern void mch_set_acl __ARGS((char_u *fname, vim_acl_T aclent));
+extern void mch_free_acl __ARGS((vim_acl_T aclent));
+extern void mch_hide __ARGS((char_u *name));
+extern int mch_isdir __ARGS((char_u *name));
+extern int mch_can_exe __ARGS((char_u *name));
+extern int mch_nodetype __ARGS((char_u *name));
+extern void mch_early_init __ARGS((void));
+extern void mch_free_mem __ARGS((void));
+extern void mch_exit __ARGS((int r));
+extern void mch_settmode __ARGS((int tmode));
+extern void get_stty __ARGS((void));
+extern void mch_setmouse __ARGS((int on));
+extern void check_mouse_termcode __ARGS((void));
+extern int mch_screenmode __ARGS((char_u *arg));
+extern int mch_get_shellsize __ARGS((void));
+extern void mch_set_shellsize __ARGS((void));
+extern void mch_new_shellsize __ARGS((void));
+extern int mch_call_shell __ARGS((char_u *cmd, int options));
+extern void mch_breakcheck __ARGS((void));
+extern int mch_expandpath __ARGS((garray_T *gap, char_u *path, int flags));
+extern int mch_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
+extern int mch_has_exp_wildcard __ARGS((char_u *p));
+extern int mch_has_wildcard __ARGS((char_u *p));
+extern int mch_libcall __ARGS((char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result));
+extern void setup_term_clip __ARGS((void));
+extern void start_xterm_trace __ARGS((int button));
+extern void stop_xterm_trace __ARGS((void));
+extern void clear_xterm_clip __ARGS((void));
+extern int clip_xterm_own_selection __ARGS((VimClipboard *cbd));
+extern void clip_xterm_lose_selection __ARGS((VimClipboard *cbd));
+extern void clip_xterm_request_selection __ARGS((VimClipboard *cbd));
+extern void clip_xterm_set_selection __ARGS((VimClipboard *cbd));
+extern int xsmp_handle_requests __ARGS((void));
+extern void xsmp_init __ARGS((void));
+extern void xsmp_close __ARGS((void));
 /* vim: set ft=c : */
