diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index 2135f0584c6520a57de8eb6bc07950abfd35b891..6b5af44a99d70da5fc17e8a78caf8097bb704283 100644
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -17,7 +17,7 @@ else (STANDALONE)
   set(Boost_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
 
   if (WINDOWS)
-    set(BOOST_VERSION 1_45)
+    set(BOOST_VERSION 1_52)
     if(MSVC80)
       set(BOOST_PROGRAM_OPTIONS_LIBRARY 
           optimized libboost_program_options-vc80-mt-${BOOST_VERSION}
@@ -50,9 +50,9 @@ else (STANDALONE)
           debug libboost_filesystem-vc100-mt-gd-${BOOST_VERSION})    
     endif (MSVC80)
   elseif (DARWIN OR LINUX)
-    set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options)
-    set(BOOST_REGEX_LIBRARY boost_regex)
-    set(BOOST_SYSTEM_LIBRARY boost_system)
-    set(BOOST_FILESYSTEM_LIBRARY boost_filesystem)
+    set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-mt)
+    set(BOOST_REGEX_LIBRARY boost_regex-mt)
+    set(BOOST_SYSTEM_LIBRARY boost_system-mt)
+    set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-mt)
   endif (WINDOWS)
 endif (STANDALONE)
diff --git a/indra/llvfs/lldiriterator.cpp b/indra/llvfs/lldiriterator.cpp
index ff92cbb7fde4fa011fc678d53b92126168d03881..fa806bf23eb760248908c686e3909201736285a3 100644
--- a/indra/llvfs/lldiriterator.cpp
+++ b/indra/llvfs/lldiriterator.cpp
@@ -59,7 +59,7 @@ LLDirIterator::Impl::Impl(const std::string &dirname, const std::string &mask)
 	{
 		is_dir = fs::is_directory(dir_path);
 	}
-	catch (fs::basic_filesystem_error<fs::path>& e)
+	catch (const fs::filesystem_error& e)
 	{
 		llwarns << e.what() << llendl;
 		return;
@@ -76,7 +76,7 @@ LLDirIterator::Impl::Impl(const std::string &dirname, const std::string &mask)
 	{
 		mIter = fs::directory_iterator(dir_path);
 	}
-	catch (fs::basic_filesystem_error<fs::path>& e)
+	catch (const fs::filesystem_error& e)
 	{
 		llwarns << e.what() << llendl;
 		return;
@@ -121,7 +121,7 @@ bool LLDirIterator::Impl::next(std::string &fname)
 	while (mIter != end_itr && !found)
 	{
 		boost::smatch match;
-		std::string name = mIter->path().filename();
+		std::string name = mIter->path().filename().string();
 		if (found = boost::regex_match(name, match, mFilterExp))
 		{
 			fname = name;