-    size_t pos = uri.find('?');
-    //There is no query string so we can load the file directly
-    if(pos == wxString::npos)
-    {
-        size_t doubleslash = uri.find("//");
-        //The path is incorrectly formed without // after the first protocol
-        if(doubleslash == wxString::npos)
-            return NULL;
-
-        wxString fspath = "file:" + 
-                          EscapeFileNameCharsInURL(uri.substr(doubleslash + 2));
-        return m_fileSystem->OpenFile(fspath);
-    }
-    //Otherwise we have a query string of some kind that we need to extract
-    else{
-        //First we extract the query string, this should have two parameters, 
-        //protocol=type and path=path
-        wxString query = uri.substr(pos + 1), protocol, path;
-        //We also trim the query off the end as we handle it alone
-        wxString lefturi = uri.substr(0, pos);
-        wxStringTokenizer tokenizer(query, ";");
-        while(tokenizer.HasMoreTokens() && (protocol == "" || path == ""))
-        {
-            wxString token = tokenizer.GetNextToken();
-            if(token.substr(0, 9) == "protocol=")
-            {
-                protocol = token.substr(9);
-            }
-            else if(token.substr(0, 5) == "path=")
-            {
-                path = token.substr(5);
-            }
-        }
-        if(protocol == "" || path == "")
-            return NULL;
-
-        //We now have the path and the protocol and so can format a correct uri
-        //to pass to wxFileSystem to get a wxFSFile
-        size_t doubleslash = uri.find("//");
-        //The path is incorrectly formed without // after the first protocol
-        if(doubleslash == wxString::npos)
-            return NULL;
-
-        wxString fspath = "file:" + 
-                          EscapeFileNameCharsInURL(lefturi.substr(doubleslash + 2))
-                          + "#" + protocol +":" + path;
-        return m_fileSystem->OpenFile(fspath);
-    }