updated for version 7.0-221
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 22421bb..ceb82ef 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -2541,10 +2541,12 @@
 
 
 finddir({name}[, {path}[, {count}]])				*finddir()*
-		Find directory {name} in {path}.  Returns the path of the
-		first found match.  When the found directory is below the
-		current directory a relative path is returned.  Otherwise a
-		full path is returned.
+		Find directory {name} in {path}.  Supports both downwards and
+		upwards recursive directory searches.  See |file-searching|
+		for the syntax of {path}.
+		Returns the path of the first found match.  When the found
+		directory is below the current directory a relative path is
+		returned.  Otherwise a full path is returned.
 		If {path} is omitted or empty then 'path' is used.
 		If the optional {count} is given, find {count}'s occurrence of
 		{name} in {path} instead of the first one.
diff --git a/src/eval.c b/src/eval.c
index 93d0394..ea83615 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -9195,7 +9195,7 @@
 		vim_free(fresult);
 	    fresult = find_file_in_path_option(first ? fname : NULL,
 					       first ? (int)STRLEN(fname) : 0,
-					0, first, path, dir, NULL,
+					0, first, path, dir, curbuf->b_ffname,
 					dir ? (char_u *)"" : curbuf->b_p_sua);
 	    first = FALSE;
 
diff --git a/src/version.c b/src/version.c
index e223c49..dd8741d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    221,
+/**/
     220,
 /**/
     219,