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