diff -rub ./boost_1_47_0/libs/filesystem/v3/src/operations.cpp ./boost_1_47_0/libs/filesystem/v3/src/operations.cpp --- ./boost_1_47_0/libs/filesystem/v3/src/operations.cpp 2011-06-28 23:24:09.000000000 +0400 +++ ./boost_1_47_0/libs/filesystem/v3/src/operations.cpp 2012-08-07 16:59:43.952769772 +0400 @@ -389,9 +389,11 @@ if (type == fs::directory_file) // but not a directory symlink { - for (fs::directory_iterator itr(p); + for (fs::directory_iterator itr(p, ec); itr != end_dir_itr; ++itr) { + if (ec != 0 && *ec) + return count; fs::file_type tmp_type = query_file_type(itr->path(), ec); if (ec != 0 && *ec) return count;