diff --git a/src/misc1.c b/src/misc1.c
index 4f36fd8..66569d4 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -10013,7 +10013,7 @@
 	if (p[0] == '*' && p[1] == '*')
 	    starstar = TRUE;
 
-    starts_with_dot = (*s == '.');
+    starts_with_dot = *s == '.' || (flags & EW_DODOT);
     pat = file_pat_to_reg_pat(s, e, NULL, FALSE);
     if (pat == NULL)
     {
@@ -10096,7 +10096,8 @@
 #endif
 	/* Ignore entries starting with a dot, unless when asked for.  Accept
 	 * all entries found with "matchname". */
-	if ((p[0] != '.' || starts_with_dot)
+	if ((p[0] != '.' || (starts_with_dot
+			&& p[1] != NUL && (p[1] != '.' || p[2] != NUL)))
 		&& (matchname == NULL
 		  || (regmatch.regprog != NULL
 				     && vim_regexec(&regmatch, p, (colnr_T)0))
@@ -10325,7 +10326,7 @@
 	    starstar = TRUE;
 
     /* convert the file pattern to a regexp pattern */
-    starts_with_dot = (*s == '.');
+    starts_with_dot = *s == '.' || (flags & EW_DODOT);
     pat = file_pat_to_reg_pat(s, e, NULL, FALSE);
     if (pat == NULL)
     {
@@ -10374,7 +10375,9 @@
 	    dp = readdir(dirp);
 	    if (dp == NULL)
 		break;
-	    if ((dp->d_name[0] != '.' || starts_with_dot)
+	    if ((dp->d_name[0] != '.' || (starts_with_dot
+			&& dp->d_name[1] != NUL
+			&& (dp->d_name[1] != '.' || dp->d_name[2] != NUL)))
 		 && ((regmatch.regprog != NULL && vim_regexec(&regmatch,
 					     (char_u *)dp->d_name, (colnr_T)0))
 		   || ((flags & EW_NOTWILD)
