Index: /ossie/branches/philip-work/framework/FileSystem_impl.cpp
===================================================================
--- /ossie/branches/philip-work/framework/FileSystem_impl.cpp	(revision 3264)
+++ /ossie/branches/philip-work/framework/FileSystem_impl.cpp	(revision 3269)
@@ -35,4 +35,7 @@
 {
     DEBUG(6, FileSystem, "In constructor.");
+
+    if (boost::filesystem::path::default_name_check_writable())
+	boost::filesystem::path::default_name_check(boost::filesystem::portable_posix_name);
 
     root = boost::filesystem::initial_path();
@@ -219,13 +222,20 @@
     boost::filesystem::path dirPath(root / directoryName);
 
-    ///\todo Create entire path when needed.
-    try {
-	boost::filesystem::create_directory(dirPath);
-    } catch (...) {
-        throw CF::FileException (CF::CFENFILE, "[FileSystem::mkdir] Failed to create directory");
-    }
-
-}
-
+    boost::filesystem::path::iterator walkPath(dirPath.begin());
+    boost::filesystem::path currentPath;
+    while (walkPath != dirPath.end()) {
+	DEBUG(9, FileSystem, "Walking path to create directories, current path " << currentPath.string());
+	currentPath /= *walkPath;
+	if (!boost::filesystem::exists(currentPath)) {
+	    DEBUG(9, FileSystem, "Creating directory " << currentPath.string());
+	    try {
+		boost::filesystem::create_directory(currentPath);
+	    } catch (...) {
+		throw CF::FileException (CF::CFENFILE, "[FileSystem::mkdir] Failed to create directory");
+	    }
+	}
+	++walkPath;
+    }
+}
 
 void FileSystem_impl::rmdir (const char *directoryName) throw (CORBA::SystemException, CF::FileException, CF::InvalidFileName)
@@ -240,11 +250,9 @@
     boost::filesystem::path dirPath(root / directoryName);
 
-    boost::filesystem::remove(dirPath);
-
-#if 0///\todo Generate proper exceptions
-    if (check != 0)
-        throw CF::FileException (CF::CFENFILE,
-            "[FileSystem_impl::rmdir] Failed to remove directory\n");
-#endif
+    ///\todo Fix case where directory contains only other empty directories
+    try {
+	boost::filesystem::remove(dirPath);
+    } catch (...) {
+    }
 }
 
Index: /ossie/branches/philip-work/framework/FileManager_impl.cpp
===================================================================
--- /ossie/branches/philip-work/framework/FileManager_impl.cpp	(revision 3260)
+++ /ossie/branches/philip-work/framework/FileManager_impl.cpp	(revision 3269)
@@ -24,4 +24,6 @@
 #include <string>
 
+#include <boost/filesystem/path.hpp>
+
 #include "ossie/cf.h"
 #include "ossie/FileManager_impl.h"
@@ -30,5 +32,9 @@
 FileManager_impl::FileManager_impl ():FileSystem_impl ()
 {
-    DEBUG(4, FileManager, "Entering constructor.")
+    DEBUG(4, FileManager, "Entering constructor.");
+
+    if (boost::filesystem::path::default_name_check_writable())
+	boost::filesystem::path::default_name_check(boost::filesystem::portable_posix_name);
+
     numMounts = 0;
     mount_table = new CF::FileManager::MountSequence(5);
