diff --git a/src/VNCFlinger.cpp b/src/VNCFlinger.cpp
index 70f741a..efd6cbc 100644
--- a/src/VNCFlinger.cpp
+++ b/src/VNCFlinger.cpp
@@ -14,6 +14,8 @@
 
 using namespace android;
 
+Mutex VNCFlinger::sUpdateMutex;
+
 status_t VNCFlinger::start() {
     Mutex::Autolock _l(mMutex);
 
@@ -74,19 +76,20 @@
     mVNCScreen->newClientHook = (rfbNewClientHookPtr) VNCFlinger::onNewClient;
     mVNCScreen->kbdAddEvent = InputDevice::keyEvent;
     mVNCScreen->ptrAddEvent = InputDevice::pointerEvent;
+    mVNCScreen->displayHook = (rfbDisplayHookPtr) VNCFlinger::onFrameStart;
+    mVNCScreen->displayFinishedHook = (rfbDisplayFinishedHookPtr) VNCFlinger::onFrameDone;
     mVNCScreen->serverFormat.trueColour = true;
     mVNCScreen->serverFormat.bitsPerPixel = 32;
     mVNCScreen->handleEventsEagerly = true;
-    mVNCScreen->deferUpdateTime = 16;
+    mVNCScreen->deferUpdateTime = 0;
     mVNCScreen->screenData = this;
-
     rfbInitServer(mVNCScreen);
 
     /* Mark as dirty since we haven't sent any updates at all yet. */
     rfbMarkRectAsModified(mVNCScreen, 0, 0, mWidth, mHeight);
 
 
-    mVirtualDisplay = new VirtualDisplay(mVNCScreen);
+    mVirtualDisplay = new VirtualDisplay(mVNCScreen, &sUpdateMutex);
 
     return err;
 }
@@ -147,6 +150,23 @@
     return RFB_CLIENT_ACCEPT;
 }
 
+void VNCFlinger::onFrameStart(rfbClientPtr /* cl */) {
+    sUpdateMutex.lock();
+    ALOGV("frame start");
+}
+
+void VNCFlinger::onFrameDone(rfbClientPtr /* cl */, int status) {
+    sUpdateMutex.unlock();
+    ALOGV("frame done! %d", status);
+}
+
+void VNCFlinger::markFrame(void* frame, size_t stride) {
+    Mutex::Autolock _l(sUpdateMutex);
+    mVNCScreen->frameBuffer = (char *)frame;
+    mVNCScreen->paddedWidthInBytes = stride * 4;
+    rfbMarkRectAsModified(mVNCScreen, 0, 0, mWidth, mHeight);
+}
+
 void VNCFlinger::rfbLogger(const char *format, ...) {
     va_list args;
     char buf[256];
