--- a/path.cpp 2015-03-30 19:58:45.000000000 +0530 +++ b/path.cpp 2015-05-19 14:35:58.431519187 +0530 @@ -329,7 +329,11 @@ namespace filesystem string_type::size_type path::m_parent_path_end() const { - size_type end_pos(filename_pos(m_pathname, m_pathname.size())); + size_type end_pos; + if ((m_pathname.size() > 1) && (is_separator(m_pathname[m_pathname.size()-1]))) + end_pos = filename_pos(m_pathname, m_pathname.size()-1); + else + end_pos = filename_pos(m_pathname, m_pathname.size()); bool filename_was_separator(m_pathname.size() && is_separator(m_pathname[end_pos]));