diff --git a/pd/nw/dialog_search.html b/pd/nw/dialog_search.html
index 30c9aa36ee89c7ea6fe65390f24fc9f23cdde518..63fa94949f57308b41bb8d79b3f91f213f115689 100644
--- a/pd/nw/dialog_search.html
+++ b/pd/nw/dialog_search.html
@@ -321,8 +321,8 @@ function doc_search() {
         div = document.createElement("div");
         a = document.createElement("a");
         a.href = "javascript: pdgui.doc_open('" +
-                 path.dirname(doc.path) + "', '" +
-                 path.basename(doc.path) + "');"
+                 defunkify_windows_path(path.dirname(doc.path)) + "', '" +
+                 defunkify_windows_path(path.basename(doc.path)) + "');"
         a.textContent = doc.title;
         header = document.createElement("h3");
         header.appendChild(a);
diff --git a/pd/nw/pdgui.js b/pd/nw/pdgui.js
index d0dfbda3f2260b620f34b0d07b3d04064b241c89..b3b9da0c052fa5bc1141991c68b53354ae8824c3 100644
--- a/pd/nw/pdgui.js
+++ b/pd/nw/pdgui.js
@@ -17,6 +17,8 @@ function defunkify_windows_path(s) {
     return s.replace(/\\/g, "/");
 }
 
+exports.defunkify_windows_path = defunkify_windows_path;
+
 exports.set_gui_dir = function(dir_string) {
     gui_dir = path.normalize(path.join(dir_string, ".."));
     gui_dir = defunkify_windows_path(gui_dir);