diff -up openvrml-0.18.8/src/libopenvrml/openvrml/local/component.cpp.boostfix openvrml-0.18.8/src/libopenvrml/openvrml/local/component.cpp
--- openvrml-0.18.8/src/libopenvrml/openvrml/local/component.cpp.boostfix	2009-07-04 17:20:16.000000000 -0400
+++ openvrml-0.18.8/src/libopenvrml/openvrml/local/component.cpp	2012-03-31 23:59:57.105645925 -0400
@@ -358,8 +358,7 @@ openvrml::local::component_registry::com
          entry != directory_iterator();
          ++entry) {
         if (!is_directory(entry->path())) try {
-            auto_ptr<component>
-                c(new component(entry->path().file_string()));
+            auto_ptr<component> c(new component(entry->path().string()));
             std::string key = c->id();
             succeeded = this->insert(key, c.release()).second;
             assert(succeeded);
diff -up openvrml-0.18.8/src/local/libopenvrml-dl/openvrml/local/dl.cpp.boostfix openvrml-0.18.8/src/local/libopenvrml-dl/openvrml/local/dl.cpp
--- openvrml-0.18.8/src/local/libopenvrml-dl/openvrml/local/dl.cpp.boostfix	2012-03-31 23:59:57.094646016 -0400
+++ openvrml-0.18.8/src/local/libopenvrml-dl/openvrml/local/dl.cpp	2012-03-31 23:59:57.105645925 -0400
@@ -103,11 +103,13 @@ foreachfile(const std::vector<boost::fil
 int
 openvrml::local::dl::prepend_to_searchpath(const boost::filesystem::path & dir)
 {
+    const std::string & dir_str = dir.string();
+    const char * const dir_c_str = dir_str.c_str();
 # ifdef _WIN32
-    return SetDllDirectory(dir.directory_string().c_str());
+    return SetDllDirectory(dir_c_str);
 # else
     const char * const before = lt_dlgetsearchpath();
-    return lt_dlinsertsearchdir(before, dir.directory_string().c_str());
+    return lt_dlinsertsearchdir(before, dir_c_str);
 # endif
 }
 
diff -up openvrml-0.18.8/src/Makefile.am.boostfix openvrml-0.18.8/src/Makefile.am
--- openvrml-0.18.8/src/Makefile.am.boostfix	2011-04-20 11:33:05.200247824 -0400
+++ openvrml-0.18.8/src/Makefile.am	2012-03-31 23:59:57.106645916 -0400
@@ -71,7 +71,7 @@ libopenvrml_libopenvrml_la_CPPFLAGS = \
         -DOPENVRML_PKGLIBDIR_=\"$(pkglibdir)\" \
         -DBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS \
         -DBOOST_MPL_LIMIT_VECTOR_SIZE=30 \
-        -DBOOST_FILESYSTEM_VERSION=2
+        -DBOOST_FILESYSTEM_VERSION=3
 libopenvrml_libopenvrml_la_CXXFLAGS = \
         $(FREETYPE_CFLAGS) \
         $(PTHREAD_CFLAGS) \
@@ -134,7 +134,7 @@ local_libopenvrml_dl_la_SOURCES = \
 local_libopenvrml_dl_la_CPPFLAGS = \
         -I$(top_builddir)/src/libopenvrml \
         -I$(top_srcdir)/src/libopenvrml \
-        -DBOOST_FILESYSTEM_VERSION=2
+        -DBOOST_FILESYSTEM_VERSION=3
 local_libopenvrml_dl_la_LIBADD = \
         -lboost_filesystem$(BOOST_LIB_SUFFIX) \
         -lboost_system$(BOOST_LIB_SUFFIX) \
@@ -178,7 +178,7 @@ script_java_la_CPPFLAGS = \
         -DOPENVRML_JVM_ARCH=\"$(OPENVRML_JVM_ARCH)\" \
         -DBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS \
         -DBOOST_MPL_LIMIT_VECTOR_SIZE=30 \
-        -DBOOST_FILESYSTEM_VERSION=2
+        -DBOOST_FILESYSTEM_VERSION=3
 script_java_la_LDFLAGS = \
         -module \
         -no-undefined \
diff -up openvrml-0.18.8/src/openvrml-xembed/browserfactory.cpp.boostfix openvrml-0.18.8/src/openvrml-xembed/browserfactory.cpp
--- openvrml-0.18.8/src/openvrml-xembed/browserfactory.cpp.boostfix	2012-03-31 23:59:57.087646074 -0400
+++ openvrml-0.18.8/src/openvrml-xembed/browserfactory.cpp	2012-03-31 23:59:57.106645916 -0400
@@ -18,7 +18,6 @@
 // with this library; if not, see <http://www.gnu.org/licenses/>.
 //
 
-# include <boost/intrusive_ptr.hpp>
 # include <boost/scope_exit.hpp>
 # include <boost/ref.hpp>
 # include <gtk/gtk.h>
@@ -34,6 +33,20 @@
 # include "browser-factory-server-glue.h"
 # include "browser.h"
 
+namespace {
+    G_GNUC_INTERNAL void intrusive_ptr_add_ref(GObject * const obj)
+    {
+     	g_object_ref(obj);
+    }
+
+    G_GNUC_INTERNAL void intrusive_ptr_release(GObject * const obj)
+    {
+     	g_object_unref(obj);
+    }
+}
+
+# include <boost/intrusive_ptr.hpp>
+
 G_DEFINE_TYPE(OpenvrmlXembedBrowserFactory,
               openvrml_xembed_browser_factory,
               G_TYPE_OBJECT)
@@ -51,18 +64,6 @@ extern "C" {
                                                       GParamSpec * pspec);
 }
 
-namespace {
-    G_GNUC_INTERNAL void intrusive_ptr_add_ref(GObject * const obj)
-    {
-        g_object_ref(obj);
-    }
-
-    G_GNUC_INTERNAL void intrusive_ptr_release(GObject * const obj)
-    {
-        g_object_unref(obj);
-    }
-}
-
 //
 // hosts maps the unique bus identifiers of hosts to a controls_map_t; a
 // controls_map_t maps an object path to an OpenvrmlXembedBrowser instance.
diff -up openvrml-0.18.8/tests/Makefile.am.boostfix openvrml-0.18.8/tests/Makefile.am
--- openvrml-0.18.8/tests/Makefile.am.boostfix	2012-04-02 09:18:26.626707408 -0400
+++ openvrml-0.18.8/tests/Makefile.am	2012-04-02 09:18:34.211634549 -0400
@@ -2,7 +2,7 @@ AM_CPPFLAGS = \
         -I$(top_builddir)/src/libopenvrml \
         -I$(top_srcdir)/src/libopenvrml \
         -DBOOST_TEST_DYN_LINK \
-        -DBOOST_FILESYSTEM_VERSION=2
+        -DBOOST_FILESYSTEM_VERSION=3
 AM_CXXFLAGS = $(PTHREAD_CFLAGS)
 
 TESTS_ENVIRONMENT = \
