Index: operations.hpp =================================================================== --- operations.hpp (revision 74949) +++ operations.hpp (working copy) @@ -689,10 +689,11 @@ { if ((m_options & symlink_option::_detail_no_push) == symlink_option::_detail_no_push) m_options &= ~symlink_option::_detail_no_push; - else if (is_directory(m_stack.top()->status()) - && (!is_symlink(m_stack.top()->symlink_status()) - || (m_options & symlink_option::recurse) == symlink_option::recurse)) + else if (((m_options & symlink_option::recurse) == symlink_option::recurse + || !is_symlink(m_stack.top()->symlink_status())) + && is_directory(m_stack.top()->status())) { + if (ec == 0) m_stack.push(directory_iterator(m_stack.top()->path())); else