diff -ur collada2gltf.org/GLTF/GLTFAsset.cpp collada2gltf/GLTF/GLTFAsset.cpp
--- collada2gltf.org/GLTF/GLTFAsset.cpp	2014-05-23 19:19:39.505246750 +0200
+++ collada2gltf/GLTF/GLTFAsset.cpp	2014-05-23 19:20:05.005245669 +0200
@@ -191,12 +191,9 @@
     shared_ptr<GLTFOutputStream> GLTFAsset::createOutputStreamIfNeeded(const std::string& streamName) {
 
         if (this->_nameToOutputStream.count(streamName) == 0) {
-            COLLADABU::URI inputURI(this->getInputFilePath().c_str());
             COLLADABU::URI outputURI(this->getOutputFilePath().c_str());
             
-            std::string folder = outputURI.getPathDir();
-            std::string fileName = inputURI.getPathFileBase();
-            
+            std::string folder = COLLADABU::URI(outputURI.getPathDir()).toNativePath();
             shared_ptr<GLTFOutputStream> outputStream = shared_ptr <GLTFOutputStream> (new GLTFOutputStream(folder, streamName, ""));
             this->_nameToOutputStream[streamName] = outputStream;
         }
@@ -280,13 +277,13 @@
             this->_bundleOutputPath = outputBundlePathURI.toNativePath();
             
             COLLADABU::URI outputPathURI(outputBundlePathURI.getURIString() + "/" + outputBundlePathURI.getPathFileBase() + "." + "json");
-            this->_outputFilePath = outputPathURI.toNativePath();
+            this->_outputFilePath = outputPathURI.getURIString();
             //                this->log("outputBundlePath:%s\n",outputBundlePathURI.toNativePath().c_str());
             //                this->log("outputPath:%s\n",outputPathURI.toNativePath().c_str());
         } else {
             this->_bundleOutputPath = outputBundlePathURI.toNativePath();
             COLLADABU::URI outputPathURI(outputBundlePathURI.getURIString() + "/" + outputBundlePathURI.getPathFileBase()  + "." + "json");
-            this->_outputFilePath = outputPathURI.toNativePath();
+            this->_outputFilePath = outputPathURI.getURIString();
         }
         COLLADABU::Utils::createDirectoryIfNeeded(this->_bundleOutputPath.c_str());
     }
@@ -376,10 +373,10 @@
                     COLLADABU::URI outputImagePathURI(inputImagePath.c_str());
                     
                     COLLADABU::URI outputURI(this->getOutputFilePath().c_str());
-                    std::string folder = outputURI.getPathDir();
+                    std::string folder = COLLADABU::URI(outputURI.getPathDir()).toNativePath();
                     std::string outputPath = folder + outputImagePathURI.getPathFile();
-                    
-                    std::ifstream f1(inputImagePath.c_str(), std::fstream::binary);
+
+                    std::ifstream f1(COLLADABU::URI(inputImagePath).toNativePath().c_str(), std::fstream::binary);
                     std::ofstream f2(outputPath.c_str(), std::fstream::binary);
                     
                     if (this->_converterConfig->boolForKeyPath("verboseLogging")) {
@@ -397,7 +394,8 @@
         this->_root = shared_ptr <GLTF::JSONObject> (new GLTF::JSONObject());
         this->_root->createObjectIfNeeded(kNodes);
         
-        this->_writer.initWithPath(this->getOutputFilePath().c_str());
+        COLLADABU::URI outputURI(this->getOutputFilePath().c_str());
+        this->_writer.initWithPath(outputURI.toNativePath().c_str());
     }
     
     static void __eval(JSONValue* value, void *context) {
@@ -427,7 +424,7 @@
     void GLTFAsset::_writeJSONResource(const std::string &path, shared_ptr<JSONObject> obj) {
         GLTF::GLTFWriter resultsWriter;
         COLLADABU::URI outputURI(this->resourceOuputPathForPath(path));
-        std::string aPath = this->getOutputFolderPath() + outputURI.getPathFile();
+        std::string aPath = COLLADABU::URI(this->getOutputFolderPath() + outputURI.getPathFile()).toNativePath();
         resultsWriter.initWithPath(aPath);
         obj->write(&resultsWriter);
         
diff -ur collada2gltf.org/shaders/commonProfileShaders.cpp collada2gltf/shaders/commonProfileShaders.cpp
--- collada2gltf.org/shaders/commonProfileShaders.cpp	2014-05-23 19:19:39.521246749 +0200
+++ collada2gltf/shaders/commonProfileShaders.cpp	2014-05-23 19:20:09.085245497 +0200
@@ -294,7 +294,7 @@
             //also write the file on disk
             if (shaderString.size() > 0) {
                 COLLADABU::URI outputURI(asset->getOutputFilePath());
-                std::string shaderPath =  outputURI.getPathDir() + path;
+                std::string shaderPath =  COLLADABU::URI(outputURI.getPathDir()).toNativePath() + path;
                 GLTF::GLTFUtils::writeData(shaderPath, "w",(unsigned char*)shaderString.c_str(), shaderString.size());
                 if (!CONFIG_BOOL(asset, "outputProgress") && asset->converterConfig()->boolForKeyPath("verboseLogging")) {
                     asset->log("[shader]: %s\n", shaderPath.c_str());
