diff --git a/rsContext.cpp b/rsContext.cpp
index e94aece..2a0ccfb 100644
--- a/rsContext.cpp
+++ b/rsContext.cpp
@@ -19,7 +19,7 @@
 #include "rsThreadIO.h"
 #include <ui/FramebufferNativeWindow.h>
 #include <ui/EGLUtils.h>
-#include <ui/egl/android_natives.h>
+#include <surfaceflinger/Surface.h>
 
 #include <sys/types.h>
 #include <sys/resource.h>
@@ -461,7 +461,7 @@
     objDestroyOOBDestroy();
 }
 
-void Context::setSurface(uint32_t w, uint32_t h, android_native_window_t *sur)
+void Context::setSurface(uint32_t w, uint32_t h, Surface *sur)
 {
     rsAssert(mIsGraphicsContext);
 
@@ -859,7 +859,7 @@
 
 void rsi_ContextSetSurface(Context *rsc, uint32_t w, uint32_t h, void *sur)
 {
-    rsc->setSurface(w, h, (android_native_window_t *)sur);
+    rsc->setSurface(w, h, (Surface *)sur);
 }
 
 void rsi_ContextSetPriority(Context *rsc, int32_t p)
diff --git a/rsContext.h b/rsContext.h
index 03e65f1..caf9728 100644
--- a/rsContext.h
+++ b/rsContext.h
@@ -41,11 +41,12 @@
 #include "rsgApiStructs.h"
 #include "rsLocklessFifo.h"
 
-#include <ui/egl/android_natives.h>
 
 // ---------------------------------------------------------------------------
 namespace android {
 
+class Surface;
+
 namespace renderscript {
 
 class Context
@@ -98,7 +99,7 @@
 
     void pause();
     void resume();
-    void setSurface(uint32_t w, uint32_t h, android_native_window_t *sur);
+    void setSurface(uint32_t w, uint32_t h, Surface *sur);
     void setPriority(int32_t p);
 
     void assignName(ObjectBase *obj, const char *name, uint32_t len);
@@ -238,7 +239,7 @@
 
     static void * threadProc(void *);
 
-    android_native_window_t *mWndSurface;
+    Surface *mWndSurface;
 
     Vector<ObjectBase *> mNames;
 
