diff --git a/pd/src/m_sched.c b/pd/src/m_sched.c
index 9ddb2624ec5d2a2677aa74c68a2a3461d2dd444a..c8269c5f9da27550c80d3d1fc22e95b215de7837 100644
--- a/pd/src/m_sched.c
+++ b/pd/src/m_sched.c
@@ -286,7 +286,7 @@ static void sched_pollformeters( void)
 
     if (sched_diored && (sched_diddsp - sched_dioredtime > 0))
     {
-        sys_vgui("pdtk_pd_dio 0\n");
+        //sys_vgui("pdtk_pd_dio 0\n");
         sched_diored = 0;
     }
     if (sched_diddsp - sched_nextmeterpolltime < 0)
diff --git a/pd/src/pd.tk b/pd/src/pd.tk
index 302caaaa04999997856f6bc625b304430cb0e8ee..5cb1c9cda2a28542ad533ee7bc3e0b674bfac8ec 100644
--- a/pd/src/pd.tk
+++ b/pd/src/pd.tk
@@ -6175,15 +6175,21 @@ proc pdtk_pd_meters {indb outdb inclip outclip} {
     
 }
 
+set sched_dio_off 0
+
 proc pdtk_pd_dio {red} {
 #    puts stderr [concat dio $red]
 	global pd_nt
+	global sched_dio_off
     if {$red == 1} {
 		if {[info tclversion] >= 8.5 && $pd_nt == 0} {
 			.controls.dio configure -style IOErrorOn.TButton
 		} else {
 	        .controls.dio configure -background red -activebackground red
 		}
+		set current_window $tkcanvas
+		after cancel $sched_dio_off	
+		set sched_dio_off [after 1000 pdtk_pd_dio 0]
     } else {
 		if {[info tclversion] >= 8.5 && $pd_nt == 0} {
 			.controls.dio configure -style IOErrorOff.TButton