diff --git a/src/conio/cterm.c b/src/conio/cterm.c
index 6337efe5f95ce62f36737acddf5755ecda4e6942..c73bc1b43a4056a11a506f47daf7f4491fe0d026 100644
--- a/src/conio/cterm.c
+++ b/src/conio/cterm.c
@@ -192,12 +192,14 @@ void playnote_thread(void *args)
 		if(device_open) {
 			if(!listSemTryWait(&notes)) {
 				xptone_close();
+				device_open=FALSE;
 				listSemWait(&notes);
 			}
 		}
 		else
 			listSemWait(&notes);
 		xptone_open();
+		device_open=TRUE;
 		note=listShiftNode(&notes);
 		if(note==NULL)
 			break;