diff -Naur build_mod/agpgart_be.c build_mod.new/agpgart_be.c
--- build_mod/agpgart_be.c	2006-01-24 22:44:34.000000000 +0100
+++ build_mod.new/agpgart_be.c	2006-01-24 22:46:48.000000000 +0100
@@ -116,6 +116,7 @@
 #include <linux/pagemap.h>
 #include <linux/miscdevice.h>
 #include <linux/pm.h>
+#include <linux/pm_legacy.h>
 
 #if (LINUX_VERSION_CODE >= 0x020400)
 #define FGL_PM_PRESENT
diff -Naur build_mod/firegl_agpgart/firegl_wrap.c build_mod.new/firegl_agpgart/firegl_wrap.c
--- build_mod/firegl_agpgart/firegl_wrap.c	2006-01-24 22:44:34.000000000 +0100
+++ build_mod.new/firegl_agpgart/firegl_wrap.c	2006-01-24 22:47:31.000000000 +0100
@@ -168,7 +168,7 @@
 
 #if !defined(__ia64__)
 // the macros do use errno variable
-static int errno;
+int errno;
 #endif // __ia64__
 
 // int mlock(const void *addr, size_t len);
diff -Naur build_mod/firegl_public.c build_mod.new/firegl_public.c
--- build_mod/firegl_public.c	2006-01-24 22:44:34.000000000 +0100
+++ build_mod.new/firegl_public.c	2006-01-24 23:02:53.000000000 +0100
@@ -2638,8 +2638,8 @@
 
     pMmPage = virt_to_page(kaddr);
 
-#if 0
-    // WARNING WARNINIG WARNNING WARNNING WARNNING WARNNING WARNNING WARNNING
+#if  LINUX_VERSION_CODE >= 0x02060f
+    // WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
     // Don't increment page usage count, cause ctx pages are allocated
     // with drm_alloc_pages, which marks all pages as reserved. Reserved
     // pages' usage count is not decremented by the kernel during unmap!!!
