added a proper idle() function
diff --git a/progs/demos/fire.c b/progs/demos/fire.c
index 52ea868..100df81 100644
--- a/progs/demos/fire.c
+++ b/progs/demos/fire.c
@@ -494,6 +494,13 @@
 
 
 static void
+idle(void)
+{
+   glutPostRedisplay();
+}
+
+
+static void
 special(int key, int x, int y)
 {
    switch (key) {
@@ -720,7 +727,7 @@
    glutKeyboardFunc(key);
    glutSpecialFunc(special);
    glutDisplayFunc(drawfire);
-   glutIdleFunc(drawfire);
+   glutIdleFunc(idle);
    glutReshapeFunc(reshape);
    glutMainLoop();