diff --git a/src/post_modules/GL/features.pike b/src/post_modules/GL/features.pike
index 042581e545ed3e274218a90530907413c77a82c0..9a3a97bd3968a8f181a78bd393b146d8d44ea3dc 100644
--- a/src/post_modules/GL/features.pike
+++ b/src/post_modules/GL/features.pike
@@ -23,12 +23,17 @@ array func_misc = ({
   ({"glRotate", "V!RRRR"}),
   ({"glLight","VEE@Q"}),
   ({"glMaterial","VEE@Q"}),
+  ({"glFog","VE@Q"}),
+  ({"glLightModel","VE@Q"}),
   ({"glGenLists","II"}),
   ({"glNewList","VIE"}),
   ({"glCallList","VI"}),
   ({"glNormal","V#ZZZ"}),
   ({"glVertex","V+ZZZ"}),
+  ({"glColor","V+ZZZZ"}),
   ({"glClear","VB"}),
+  ({"glIsEnabled","OE"}),
+  ({"glBlendFunc","VEE"}),
 });
 mapping func_cat = ([
   "VE":funcEV,
diff --git a/src/post_modules/GL/gen.pike b/src/post_modules/GL/gen.pike
index a3418f52d24037dae7818cf3fe598a3cb276f514..cf158bb6bfa03c467045f50cd80319415cc6236f 100755
--- a/src/post_modules/GL/gen.pike
+++ b/src/post_modules/GL/gen.pike
@@ -6,6 +6,7 @@
    F=float
    E=enum
    B=bitfield
+   O=bool
    R=double/float
    Q=int/float
    Z=(byte/)double/float/int/short
@@ -43,6 +44,7 @@ array(string|array(string)) special_234(int mi, int mx, string ty)
   case 'E':
   case 'B':
   case 'I':
+  case 'O':
     baset="int";
     tm="BIT_INT";
     rt="i";
@@ -90,6 +92,7 @@ array(string) gen_func(string name, string ty)
     prot=":void";
     break;
   case 'I':
+  case 'O':
     prot=":int";
     vdec="INT32";
     vret="push_int";
@@ -105,6 +108,7 @@ array(string) gen_func(string name, string ty)
     switch(ty[i]) {
     case 'B':
     case 'E':
+    case 'O':
     case 'I':
       argt += ({"int"});
       args += ({ "arg"+i });