diff --git a/src/libEGL/libEGL.cpp b/src/libEGL/libEGL.cpp
index f9a7311..3c58f23 100644
--- a/src/libEGL/libEGL.cpp
+++ b/src/libEGL/libEGL.cpp
@@ -1030,9 +1030,26 @@
 
     try
     {
-        UNIMPLEMENTED();   // FIXME
+        struct Extension
+        {
+            const char *name;
+            __eglMustCastToProperFunctionPointerType address;
+        };
 
-        return NULL;
+        static const Extension eglExtensions[] =
+        {
+            {"", NULL},
+        };
+
+        for (int ext = 0; ext < sizeof(eglExtensions) / sizeof(Extension); ext++)
+        {
+            if (strcmp(procname, eglExtensions[ext].name) == 0)
+            {
+                return (__eglMustCastToProperFunctionPointerType)eglExtensions[ext].address;
+            }
+        }
+
+        return glGetProcAddress(procname);
     }
     catch(std::bad_alloc&)
     {
diff --git a/src/libGLESv2/Context.h b/src/libGLESv2/Context.h
index daf962a..fa0ed7b 100644
--- a/src/libGLESv2/Context.h
+++ b/src/libGLESv2/Context.h
@@ -365,6 +365,7 @@
 void glDestroyContext(gl::Context *context);
 void glMakeCurrent(gl::Context *context, egl::Display *display, egl::Surface *surface);
 gl::Context *glGetCurrentContext();
+__eglMustCastToProperFunctionPointerType __stdcall glGetProcAddress(const char *procname);
 }
 
 #endif   // INCLUDE_CONTEXT_H_
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index 5b1ab7b..33009a8 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -5040,4 +5040,29 @@
         return error(GL_OUT_OF_MEMORY);
     }
 }
+
+__eglMustCastToProperFunctionPointerType __stdcall glGetProcAddress(const char *procname)
+{
+    struct Extension
+    {
+        const char *name;
+        __eglMustCastToProperFunctionPointerType address;
+    };
+
+    static const Extension glExtensions[] =
+    {
+        {"glTexImage3DOES", (__eglMustCastToProperFunctionPointerType)glTexImage3DOES},
+    };
+
+    for (int ext = 0; ext < sizeof(glExtensions) / sizeof(Extension); ext++)
+    {
+        if (strcmp(procname, glExtensions[ext].name) == 0)
+        {
+            return (__eglMustCastToProperFunctionPointerType)glExtensions[ext].address;
+        }
+    }
+
+    return NULL;
+}
+
 }
diff --git a/src/libGLESv2/libGLESv2.def b/src/libGLESv2/libGLESv2.def
index 6ec8bb1..0aaaa67 100644
--- a/src/libGLESv2/libGLESv2.def
+++ b/src/libGLESv2/libGLESv2.def
@@ -150,4 +150,5 @@
     glCreateContext					@144 NONAME
     glDestroyContext				@145 NONAME
     glMakeCurrent					@146 NONAME
-    glGetCurrentContext				@147 NONAME
\ No newline at end of file
+    glGetCurrentContext				@147 NONAME
+    glGetProcAddress                @148 NONAME
\ No newline at end of file
