exercise glDeleteProgramsARB
diff --git a/progs/demos/arbfplight.c b/progs/demos/arbfplight.c
index d0b6bc9..f9112a3 100644
--- a/progs/demos/arbfplight.c
+++ b/progs/demos/arbfplight.c
@@ -34,6 +34,7 @@
 static PFNGLPROGRAMSTRINGARBPROC glProgramStringARB_func;
 static PFNGLBINDPROGRAMARBPROC glBindProgramARB_func;
 static PFNGLISPROGRAMARBPROC glIsProgramARB_func;
+static PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB_func;
 
 /* These must match the indexes used in the fragment program */
 #define DIFFUSE 1
@@ -128,6 +129,8 @@
          }
          break;
       case 27:
+         glDeleteProgramsARB_func(1, &VertProg);
+         glDeleteProgramsARB_func(1, &FragProg);
          exit(0);
          break;
    }
@@ -261,6 +264,9 @@
    glIsProgramARB_func = (PFNGLISPROGRAMARBPROC) glutGetProcAddress("glIsProgramARB");
    assert(glIsProgramARB_func);
 
+   glDeleteProgramsARB_func = (PFNGLDELETEPROGRAMSARBPROC) glutGetProcAddress("glDeleteProgramsARB");
+   assert(glDeleteProgramsARB_func);
+
    /*
     * Fragment program
     */