call glutDestroyWindow()
diff --git a/progs/trivial/tri.c b/progs/trivial/tri.c
index 58a650b..d4a7f08 100644
--- a/progs/trivial/tri.c
+++ b/progs/trivial/tri.c
@@ -33,6 +33,7 @@
 
 
 GLenum doubleBuffer;
+int win;
 
 static void Init(void)
 {
@@ -59,7 +60,8 @@
 
     switch (key) {
       case 27:
-	exit(1);
+         glutDestroyWindow(win);
+	exit(0);
       default:
 	return;
     }
@@ -122,7 +124,8 @@
     type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
     glutInitDisplayMode(type);
 
-    if (glutCreateWindow("First Tri") == GL_FALSE) {
+    win = glutCreateWindow("First Tri");
+    if (!win) {
 	exit(1);
     }