diff --git a/include/private/ui/SurfaceBuffer.h b/include/private/ui/SurfaceBuffer.h
new file mode 100644
index 0000000..a6db50f
--- /dev/null
+++ b/include/private/ui/SurfaceBuffer.h
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ANDROID_UI_PRIVATE_SURFACE_BUFFER_H
+#define ANDROID_UI_PRIVATE_SURFACE_BUFFER_H
+
+#include <stdint.h>
+#include <sys/types.h>
+
+#include <utils/RefBase.h>
+
+#include <ui/egl/android_natives.h>
+
+namespace android {
+
+// ---------------------------------------------------------------------------
+
+class BufferMapper;
+class Rect;
+class Surface;
+class SurfaceBuffer;
+
+// ---------------------------------------------------------------------------
+
+class SurfaceBuffer 
+    : public EGLNativeBase<
+        android_native_buffer_t, 
+        SurfaceBuffer, 
+        LightRefBase<SurfaceBuffer> >
+{
+public:
+    status_t lock(uint32_t usage, void** vaddr);
+    status_t lock(uint32_t usage, const Rect& rect, void** vaddr);
+    status_t unlock();
+
+protected:
+            SurfaceBuffer();
+            SurfaceBuffer(const Parcel& reply);
+    virtual ~SurfaceBuffer();
+    bool mOwner;
+
+    inline const BufferMapper& getBufferMapper() const { return mBufferMapper; }
+    inline BufferMapper& getBufferMapper() { return mBufferMapper; }
+    
+private:
+    friend class Surface;
+    friend class BpSurface;
+    friend class BnSurface;
+    friend class LightRefBase<SurfaceBuffer>;    
+
+    SurfaceBuffer& operator = (const SurfaceBuffer& rhs);
+    const SurfaceBuffer& operator = (const SurfaceBuffer& rhs) const;
+
+    static status_t writeToParcel(Parcel* reply, 
+            android_native_buffer_t const* buffer);
+    
+    BufferMapper& mBufferMapper;
+};
+
+}; // namespace android
+
+#endif // ANDROID_UI_PRIVATE_SURFACE_BUFFER_H
+
diff --git a/include/ui/FramebufferNativeWindow.h b/include/ui/FramebufferNativeWindow.h
index 0db245a..aad39a2 100644
--- a/include/ui/FramebufferNativeWindow.h
+++ b/include/ui/FramebufferNativeWindow.h
@@ -21,13 +21,14 @@
 #include <sys/types.h>
 
 #include <EGL/egl.h>
-#include <EGL/android_natives.h>
 
 #include <utils/threads.h>
 #include <ui/Rect.h>
 
 #include <pixelflinger/pixelflinger.h>
 
+#include <ui/egl/android_natives.h>
+
 
 extern "C" EGLNativeWindowType android_createDisplaySurface(void);
 
@@ -36,25 +37,7 @@
 // ---------------------------------------------------------------------------
 
 class Surface;
-
-
-class NativeBuffer 
-    : public EGLNativeBase<
-        android_native_buffer_t, 
-        NativeBuffer, 
-        LightRefBase<NativeBuffer>  >
-{
-public:
-    NativeBuffer(int w, int h, int f, int u) : BASE() {
-        android_native_buffer_t::width  = w;
-        android_native_buffer_t::height = h;
-        android_native_buffer_t::format = f;
-        android_native_buffer_t::usage  = u;
-    }
-private:
-    friend class LightRefBase<NativeBuffer>;    
-    ~NativeBuffer() { }; // this class cannot be overloaded
-};
+class NativeBuffer;
 
 // ---------------------------------------------------------------------------
 
diff --git a/include/ui/ISurface.h b/include/ui/ISurface.h
index 1a788720d..e47b753 100644
--- a/include/ui/ISurface.h
+++ b/include/ui/ISurface.h
@@ -20,8 +20,6 @@
 #include <stdint.h>
 #include <sys/types.h>
 
-#include <EGL/android_natives.h>
-
 #include <utils/Errors.h>
 #include <utils/IInterface.h>
 #include <utils/RefBase.h>
diff --git a/include/ui/Surface.h b/include/ui/Surface.h
index e9bb1b3..8c4f63d 100644
--- a/include/ui/Surface.h
+++ b/include/ui/Surface.h
@@ -28,7 +28,7 @@
 #include <ui/Region.h>
 #include <ui/ISurfaceFlingerClient.h>
 
-#include <EGL/android_natives.h>
+#include <ui/egl/android_natives.h>
 
 namespace android {
 
@@ -43,44 +43,6 @@
 
 // ---------------------------------------------------------------------------
 
-class SurfaceBuffer 
-    : public EGLNativeBase<
-        android_native_buffer_t, 
-        SurfaceBuffer, 
-        LightRefBase<SurfaceBuffer> >
-{
-public:
-    status_t lock(uint32_t usage, void** vaddr);
-    status_t lock(uint32_t usage, const Rect& rect, void** vaddr);
-    status_t unlock();
-
-protected:
-            SurfaceBuffer();
-            SurfaceBuffer(const Parcel& reply);
-    virtual ~SurfaceBuffer();
-    bool mOwner;
-
-    inline const BufferMapper& getBufferMapper() const { return mBufferMapper; }
-    inline BufferMapper& getBufferMapper() { return mBufferMapper; }
-    
-private:
-    friend class Surface;
-    friend class BpSurface;
-    friend class BnSurface;
-    friend class LightRefBase<SurfaceBuffer>;    
-
-    SurfaceBuffer& operator = (const SurfaceBuffer& rhs);
-    const SurfaceBuffer& operator = (const SurfaceBuffer& rhs) const;
-
-    static status_t writeToParcel(Parcel* reply, 
-            android_native_buffer_t const* buffer);
-    
-    BufferMapper& mBufferMapper;
-};
-
-// ---------------------------------------------------------------------------
-class Surface;
-
 class SurfaceControl : public RefBase
 {
 public:
diff --git a/opengl/include/EGL/android_natives.h b/include/ui/egl/android_natives.h
similarity index 99%
rename from opengl/include/EGL/android_natives.h
rename to include/ui/egl/android_natives.h
index b8465d5..5842ee7 100644
--- a/opengl/include/EGL/android_natives.h
+++ b/include/ui/egl/android_natives.h
@@ -47,7 +47,6 @@
     SURFACE_FLAG_MAPPED             = FRAMEBUFFER_FLAG_MAPPED,
 };
 
-
 // ---------------------------------------------------------------------------
 
 struct android_native_base_t
diff --git a/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp b/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
index ca96e14..374f2e2 100644
--- a/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
+++ b/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
@@ -30,7 +30,6 @@
 #include <GLES/gl.h>
 #include <EGL/egl.h>
 #include <EGL/eglext.h>
-#include <EGL/android_natives.h>
 
 #include <pixelflinger/pixelflinger.h>
 
diff --git a/libs/surfaceflinger/LayerBitmap.h b/libs/surfaceflinger/LayerBitmap.h
index 6e136a2..824e0f2 100644
--- a/libs/surfaceflinger/LayerBitmap.h
+++ b/libs/surfaceflinger/LayerBitmap.h
@@ -28,12 +28,10 @@
 #include <ui/Rect.h>
 #include <ui/Surface.h>
 
-#include <EGL/android_natives.h>
-
 #include <pixelflinger/pixelflinger.h>
 
 #include <private/ui/SharedState.h>
-
+#include <private/ui/SurfaceBuffer.h>
 
 class copybit_image_t;
 struct android_native_buffer_t;
diff --git a/libs/ui/BufferMapper.cpp b/libs/ui/BufferMapper.cpp
index 1a75c5d..92a9a86 100644
--- a/libs/ui/BufferMapper.cpp
+++ b/libs/ui/BufferMapper.cpp
@@ -25,8 +25,6 @@
 #include <ui/BufferMapper.h>
 #include <ui/Rect.h>
 
-#include <EGL/android_natives.h>
-
 #include <hardware/gralloc.h>
 
 
diff --git a/libs/ui/FramebufferNativeWindow.cpp b/libs/ui/FramebufferNativeWindow.cpp
index f235cb4..5e69cff 100644
--- a/libs/ui/FramebufferNativeWindow.cpp
+++ b/libs/ui/FramebufferNativeWindow.cpp
@@ -42,6 +42,25 @@
 namespace android {
 // ----------------------------------------------------------------------------
 
+class NativeBuffer 
+    : public EGLNativeBase<
+        android_native_buffer_t, 
+        NativeBuffer, 
+        LightRefBase<NativeBuffer> >
+{
+public:
+    NativeBuffer(int w, int h, int f, int u) : BASE() {
+        android_native_buffer_t::width  = w;
+        android_native_buffer_t::height = h;
+        android_native_buffer_t::format = f;
+        android_native_buffer_t::usage  = u;
+    }
+private:
+    friend class LightRefBase<NativeBuffer>;    
+    ~NativeBuffer() { }; // this class cannot be overloaded
+};
+
+
 /*
  * This implements the (main) framebuffer management. This class is used
  * mostly by SurfaceFlinger, but also by command line GL application.
diff --git a/libs/ui/ISurface.cpp b/libs/ui/ISurface.cpp
index fcea8ec..ec922d0 100644
--- a/libs/ui/ISurface.cpp
+++ b/libs/ui/ISurface.cpp
@@ -27,6 +27,7 @@
 #include <ui/Overlay.h>
 #include <ui/Surface.h>
 
+#include <private/ui/SurfaceBuffer.h>
 
 namespace android {
 
diff --git a/libs/ui/Surface.cpp b/libs/ui/Surface.cpp
index 782eac4..6437619 100644
--- a/libs/ui/Surface.cpp
+++ b/libs/ui/Surface.cpp
@@ -36,12 +36,11 @@
 #include <ui/SurfaceComposerClient.h>
 #include <ui/Rect.h>
 
-#include <EGL/android_natives.h>
+#include <pixelflinger/pixelflinger.h>
 
 #include <private/ui/SharedState.h>
 #include <private/ui/LayerState.h>
-
-#include <pixelflinger/pixelflinger.h>
+#include <private/ui/SurfaceBuffer.h>
 
 namespace android {
 
diff --git a/opengl/include/EGL/eglplatform.h b/opengl/include/EGL/eglplatform.h
index d428087..9561490 100644
--- a/opengl/include/EGL/eglplatform.h
+++ b/opengl/include/EGL/eglplatform.h
@@ -89,7 +89,8 @@
 
 #elif defined(ANDROID)
 
-#include <EGL/android_natives.h>
+struct android_native_window_t;
+struct egl_native_pixmap_t;
 
 typedef struct android_native_window_t* EGLNativeWindowType;
 typedef struct egl_native_pixmap_t*     EGLNativePixmapType;
@@ -97,6 +98,7 @@
 
 #ifndef EGL_ANDROID_image_native_buffer
 #define EGL_ANDROID_image_native_buffer 1
+struct android_native_buffer_t;
 #define EGL_NATIVE_BUFFER_ANDROID       0x6000  /* eglCreateImageKHR target */
 #endif
 
diff --git a/opengl/libagl/TextureObjectManager.cpp b/opengl/libagl/TextureObjectManager.cpp
index 9eb99f0..e5d4ed2 100644
--- a/opengl/libagl/TextureObjectManager.cpp
+++ b/opengl/libagl/TextureObjectManager.cpp
@@ -19,6 +19,8 @@
 #include "context.h"
 #include "TextureObjectManager.h"
 
+#include <ui/egl/android_natives.h>
+
 namespace android {
 // ----------------------------------------------------------------------------
 
diff --git a/opengl/libagl/TextureObjectManager.h b/opengl/libagl/TextureObjectManager.h
index 29d5037..e0eadf1 100644
--- a/opengl/libagl/TextureObjectManager.h
+++ b/opengl/libagl/TextureObjectManager.h
@@ -30,7 +30,7 @@
 #include <private/pixelflinger/ggl_context.h>
 
 #include <GLES/gl.h>
-#include <EGL/android_natives.h>
+#include <EGL/egl.h>
 
 #include "Tokenizer.h"
 #include "TokenManager.h"
diff --git a/opengl/libagl/egl.cpp b/opengl/libagl/egl.cpp
index 720ba0b..0950f3e 100644
--- a/opengl/libagl/egl.cpp
+++ b/opengl/libagl/egl.cpp
@@ -33,13 +33,14 @@
 
 #include <EGL/egl.h>
 #include <EGL/eglext.h>
-#include <EGL/android_natives.h>
 #include <GLES/gl.h>
 #include <GLES/glext.h>
 
 #include <pixelflinger/format.h>
 #include <pixelflinger/pixelflinger.h>
 
+#include <ui/egl/android_natives.h>
+
 #include "context.h"
 #include "state.h"
 #include "texture.h"
diff --git a/opengl/libagl/texture.cpp b/opengl/libagl/texture.cpp
index 1189643..0211208 100644
--- a/opengl/libagl/texture.cpp
+++ b/opengl/libagl/texture.cpp
@@ -23,7 +23,7 @@
 #include "texture.h"
 #include "TextureObjectManager.h"
 
-#include <EGL/android_natives.h>
+#include <ui/egl/android_natives.h>
 
 #ifdef LIBAGL_USE_GRALLOC_COPYBITS
 #include "copybit.h"
