diff --git a/pd/nw/dialog_search.html b/pd/nw/dialog_search.html
index 60aebf7ca89c05f2201492bf6948fe0ecfece4cb..01bc0aff5e416d3211d9d20b9b7d7d492daa8164 100644
--- a/pd/nw/dialog_search.html
+++ b/pd/nw/dialog_search.html
@@ -88,7 +88,7 @@ var toc = [
     // Pd-L2Ork extras
     {
         id: "doc/4.data.structures/pd-l2ork/ds-tutorials",
-        title: "Pd-l2ork Data Structures",
+        title: "Pd-L2Ork Data Structures",
         description: "new and improved data structure visualizations"
     },
     // PDDP tutorials
@@ -108,7 +108,7 @@ var toc = [
     {
         id: "doc/manuals/2.Image",
         title: "Image",
-        description: "3D graphics with GEM"
+        description: "3D graphics with GEM (Windows and Linux only)"
     },
     {
         id: "doc/manuals/3.Networking",
@@ -127,12 +127,16 @@ var toc = [
         title: "Cyclone",
         description: "library of clones of Max/MSP 4.x objects"
     },
-    // Gem isn't currently running on OSX, so we don't list it here
-//    {
-//        id: "extra/Gem",
-//        title: "GEM",
-//        description: "Graphics Environment for Multimedia (OpenGL graphics in Pd)"
-//    },
+    {
+        id: "extra/disis",
+        title: "DISIS",
+        description: "DISIS externals (Linux only)"
+    },
+    {
+        id: "extra/Gem",
+        title: "GEM",
+        description: "Graphics Environment for Multimedia (Windows and Linux only)"
+    },
     {
         id: "extra/lyon",
         title: "LyonPotpourri",
@@ -217,17 +221,22 @@ function display_toc() {
     toc.forEach(function(doc, i, a) {
         div = document.createElement("div");
 	if (doc.id) {
-            a = document.createElement("a");
-            a.href = "javascript: click_toc('" + doc.id + "');";
-            a.textContent = doc.title;
-            // set title to path for tooltip
-            a.title = doc.id;
-            header = document.createElement("h3");
-            header.appendChild(a);
-            div.appendChild(header);
-	    if (doc.description) {
-		text_node = document.createTextNode(doc.description);
-		div.appendChild(text_node);
+	    try {
+		fs.accessSync(path.join(pdgui.get_lib_dir(), doc.id), fs.F_OK);
+		a = document.createElement("a");
+		a.href = "javascript: click_toc('" + doc.id + "');";
+		a.textContent = doc.title;
+		// set title to path for tooltip
+		a.title = doc.id;
+		header = document.createElement("h3");
+		header.appendChild(a);
+		div.appendChild(header);
+		if (doc.description) {
+		    text_node = document.createTextNode(doc.description);
+		    div.appendChild(text_node);
+		}
+	    } catch (e) {
+		// entry doesn't exist, ignore it
 	    }
 	} else {
 	    // make a session title
@@ -236,7 +245,9 @@ function display_toc() {
             header.appendChild(text_node);
             div.appendChild(header);
 	}
-        results_elem.appendChild(div);
+	if (div.hasChildNodes()) {
+            results_elem.appendChild(div);
+	}
     });
 }