diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
index f17bf43..94d0021 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
@@ -53,7 +53,9 @@
             if (mHwc->registerProcs) {
                 mCBContext.hwc = this;
                 mCBContext.procs.invalidate = &hook_invalidate;
+                mCBContext.procs.vsync = &hook_vsync;
                 mHwc->registerProcs(mHwc, &mCBContext.procs);
+                memset(mCBContext.procs.zero, 0, sizeof(mCBContext.procs.zero));
             }
         }
     }
@@ -74,10 +76,17 @@
     reinterpret_cast<cb_context *>(procs)->hwc->invalidate();
 }
 
+void HWComposer::hook_vsync(struct hwc_procs* procs, int dpy, int64_t timestamp) {
+    reinterpret_cast<cb_context *>(procs)->hwc->vsync(dpy, timestamp);
+}
+
 void HWComposer::invalidate() {
     mFlinger->repaintEverything();
 }
 
+void HWComposer::vsync(int dpy, int64_t timestamp) {
+}
+
 void HWComposer::setFrameBuffer(EGLDisplay dpy, EGLSurface sur) {
     mDpy = (hwc_display_t)dpy;
     mSur = (hwc_surface_t)sur;
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.h b/services/surfaceflinger/DisplayHardware/HWComposer.h
index aa8ebe1..81e7359 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.h
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.h
@@ -72,12 +72,24 @@
             const Vector< sp<LayerBase> >& visibleLayersSortedByZ) const;
 
 private:
+
+    struct callbacks : public hwc_procs_t {
+        // these are here to facilitate the transition when adding
+        // new callbacks (an implementation can check for NULL before
+        // calling a new callback).
+        void (*zero[4])(void);
+    };
+
     struct cb_context {
-        hwc_procs_t procs;
+        callbacks procs;
         HWComposer* hwc;
     };
+
     static void hook_invalidate(struct hwc_procs* procs);
+    static void hook_vsync(struct hwc_procs* procs, int dpy, int64_t timestamp);
+
     void invalidate();
+    void vsync(int dpy, int64_t timestamp);
 
     sp<SurfaceFlinger>      mFlinger;
     hw_module_t const*      mModule;
