diff --git a/pd/nw/css/default.css b/pd/nw/css/default.css
index 54f2e75447e51b418872c4d119409363656689c1..6b12fe7cf91465f65cb8e81c5e8288cf989d6718 100644
--- a/pd/nw/css/default.css
+++ b/pd/nw/css/default.css
@@ -14,6 +14,11 @@
     user-select: none;
 }
 
+::selection {
+    background: #c3c3c3;
+    color: black;
+}
+
 /* The main Pd Window */
 
 #console_body {
@@ -49,6 +54,10 @@
     font-family: "DejaVu Sans Mono";
 }
 
+#selection_rectangle {
+    stroke: #e87216;
+}
+
 .cord.signal {
     stroke-width: 2;
     stroke: #808095;
@@ -59,6 +68,19 @@
     stroke: #565;
 }
 
+#cord_inspector_rect {
+    fill: black;
+    stroke: black;
+}
+
+#cord_inspector_text {
+    fill: white;
+}
+
+#cord_inspector_text.flash {
+    fill: #e87216;
+}
+
 #new_object_textentry {
     /* max-width: 10ch; */
     min-width: 3ch;
@@ -125,6 +147,10 @@ text {
     stroke: #ccc;
 }
 
+.iemgui .border {
+    stroke: black;
+}
+
 /* border color for selected objects
       * an element with the class 'border'
       * the element is contained within a parent element of class 'selected'
@@ -134,7 +160,7 @@ text {
       canvas.
 */
 :not(.gop).selected .border {
-    stroke: blue;
+    stroke: #e87216;
     display: inline;
 }
 
@@ -146,7 +172,7 @@ text {
 /* for an object that didn't create */
 .obj .border.broken_border {
     fill: #f7f7f7;
-    stroke: red;
+    stroke: #f00;
     stroke-dasharray: 3 2;
 }
 
diff --git a/pd/nw/pdgui.js b/pd/nw/pdgui.js
index a1b783243915356e9bde85fa3688dc79b3d137ea..0b16c4175306a4cad573fdfda510fc605eca55f3 100644
--- a/pd/nw/pdgui.js
+++ b/pd/nw/pdgui.js
@@ -2348,7 +2348,7 @@ function gui_create_selection_rectangle(cid, x1, y1, x2, y2) {
     var rect = create_item(cid, 'polygon', {
         points: points_array.join(" "),
         fill: 'none',
-        stroke: 'black',
+//        stroke: 'black', // set in css now
         'shape-rendering': 'optimizeSpeed',
         'stroke-width': 1,
         id: 'selection_rectangle',
@@ -3450,6 +3450,7 @@ function gui_cord_inspector_update(cid, text, basex, basey, bg_size, y1, y2, mov
     gobj.setAttributeNS(null, 'transform',
             'translate(' + (basex + 10.5) + ',' + (basey + 0.5) + ')');
     gobj.setAttributeNS(null, 'pointer-events', 'none');
+    gobj.classList.remove('flash');
     var rect = get_item(cid, 'cord_inspector_rect');
     var poly = get_item(cid, 'cord_inspector_polygon');
     var svg_text = get_item(cid, 'cord_inspector_text');
@@ -3458,9 +3459,9 @@ function gui_cord_inspector_update(cid, text, basex, basey, bg_size, y1, y2, mov
         x: 13,
         y: y1 - basey,
         width: bg_size - basex,
-        height: y2 - basey + 10,
-        fill: 'none',
-        stroke: 'black'
+        height: y2 - basey + 10
+//        fill: 'none', // set in css now
+//        stroke: 'black' // set in css now
     });
     var polypoints_array = [8,0,13,5,13,-5];
      configure_item(poly, {
@@ -3469,7 +3470,7 @@ function gui_cord_inspector_update(cid, text, basex, basey, bg_size, y1, y2, mov
     configure_item(svg_text, {
         x: 20,
         y: 5,
-        fill: 'black'
+//        fill: 'black' // set in css now
     });
     // set the text
     svg_text.textContent = text;
@@ -3484,10 +3485,15 @@ function gui_erase_cord_inspector(cid) {
     }
 }
 
-function gui_cord_inspector_flash(cid) {
+function gui_cord_inspector_flash(cid, state) {
     var ct = get_item(cid, 'cord_inspector_text');
     if (ct !== null) {
-        configure_item(ct, { fill: 'red' });
+        if (state === 1) {
+            ct.classList.add('flash');
+        } else {
+            ct.classList.remove('flash');
+        }
+//        configure_item(ct, { fill: 'red' });
     } else {
         gui_post("gui_cord_inspector_flash: trying to flash a non-existent cord inspector!");
     }
diff --git a/pd/src/g_magicglass.c b/pd/src/g_magicglass.c
index 0afa60871636f12c542b853bc93a5c61ab06fd8e..ffe450b22748f0cceb4f7a73247d8274fd39d397 100644
--- a/pd/src/g_magicglass.c
+++ b/pd/src/g_magicglass.c
@@ -73,6 +73,7 @@ void magicGlass_updateText(t_magicGlass *x, int moved)
             else
             {
                 color = "$pd_colors(magic_glass_flash)";
+                gui_vmess("gui_cord_inspector_flash", "xi", x->x_c, 1);
                 clock_delay(x->x_flashClock, MG_CLOCK_FLASH_DELAY);
             }
             sys_vgui(".x%x.c itemconfigure magicGlassText -text {%s} "
@@ -162,14 +163,17 @@ void magicGlass_undraw(t_magicGlass *x)
         x->x_c);
 }
 
+/* Note: this is a misnomer. This actually changes
+   the text back to the original color _after_ the
+   flash happened. (Unflash?) */
 void magicGlass_flashText(t_magicGlass *x)
 {
     //fprintf(stderr,"magicglass_flashText\n");
     //sys_vgui(".x%x.c itemconfigure magicGlassText "
     //         "-fill $pd_colors(magic_glass_text)\n",
     //     x->x_c);
-    gui_vmess("gui_cord_inspector_flash", "x",
-        x->x_c);
+    gui_vmess("gui_cord_inspector_flash", "xi",
+        x->x_c, 0);
 }
 
 void magicGlass_clearText(t_magicGlass *x)