fix several program-related bugs (bug 9136)
diff --git a/src/mesa/shader/program.c b/src/mesa/shader/program.c
index 789d36e..ddfad47 100644
--- a/src/mesa/shader/program.c
+++ b/src/mesa/shader/program.c
@@ -207,6 +207,7 @@
       prog->Target = target;
       prog->Resident = GL_TRUE;
       prog->RefCount = 1;
+      prog->Format = GL_PROGRAM_FORMAT_ASCII_ARB;
    }
 
    return prog;
@@ -284,6 +285,9 @@
    (void) ctx;
    ASSERT(prog);
 
+   if (prog == &_mesa_DummyProgram)
+      return;
+                 
    if (prog->String)
       _mesa_free(prog->String);