diff --git a/services/surfaceflinger/DisplayDevice.cpp b/services/surfaceflinger/DisplayDevice.cpp
index b09b77c..a33b94b 100644
--- a/services/surfaceflinger/DisplayDevice.cpp
+++ b/services/surfaceflinger/DisplayDevice.cpp
@@ -97,33 +97,55 @@
  *
  */
 
+DisplayDevice::DisplayDevice()
+    : mId(0),
+      mDisplay(EGL_NO_DISPLAY),
+      mSurface(EGL_NO_SURFACE),
+      mContext(EGL_NO_CONTEXT)
+{
+}
+
 DisplayDevice::DisplayDevice(
         const sp<SurfaceFlinger>& flinger,
         int display,
         const sp<SurfaceTextureClient>& surface,
         EGLConfig config)
-    :   mFlinger(flinger),
-        mDisplayId(display),
-        mNativeWindow(surface),
-        mDisplay(EGL_NO_DISPLAY),
-        mSurface(EGL_NO_SURFACE),
-        mContext(EGL_NO_CONTEXT),
-        mDpiX(), mDpiY(),
-        mRefreshRate(),
-        mDensity(),
-        mDisplayWidth(), mDisplayHeight(), mFormat(),
-        mFlags(),
-        mPageFlipCount(),
-        mRefreshPeriod(),
-        mSecureLayerVisible(false),
-        mScreenAcquired(false),
-        mOrientation(),
-        mLayerStack(0)
+    : mFlinger(flinger),
+      mId(display),
+      mNativeWindow(surface),
+      mDisplay(EGL_NO_DISPLAY),
+      mSurface(EGL_NO_SURFACE),
+      mContext(EGL_NO_CONTEXT),
+      mDpiX(), mDpiY(),
+      mRefreshRate(),
+      mDensity(),
+      mDisplayWidth(), mDisplayHeight(), mFormat(),
+      mFlags(),
+      mPageFlipCount(),
+      mRefreshPeriod(),
+      mSecureLayerVisible(false),
+      mScreenAcquired(false),
+      mOrientation(),
+      mLayerStack(0)
 {
     init(config);
 }
 
 DisplayDevice::~DisplayDevice() {
+    // DO NOT call terminate() from here, because we create
+    // temporaries of this class (on the stack typically), and we don't
+    // want to destroy the EGLSurface in that case
+}
+
+void DisplayDevice::terminate() {
+    if (mSurface != EGL_NO_SURFACE) {
+        eglDestroySurface(mDisplay, mSurface);
+        mSurface = EGL_NO_SURFACE;
+    }
+}
+
+bool DisplayDevice::isValid() const {
+    return mFlinger != NULL;
 }
 
 float DisplayDevice::getDpiX() const {
@@ -389,5 +411,6 @@
         h = tmp;
     }
     mOrientation = orientation;
+    dirtyRegion.set(bounds());
     return NO_ERROR;
 }
