diff --git a/WebCore/plugins/android/PluginViewAndroid.cpp b/WebCore/plugins/android/PluginViewAndroid.cpp
index 541fd21..c91b480 100644
--- a/WebCore/plugins/android/PluginViewAndroid.cpp
+++ b/WebCore/plugins/android/PluginViewAndroid.cpp
@@ -603,12 +603,31 @@
 {
     setSelfVisible(true);
     Widget::show();
+
+    if (platformPluginWidget())
+        platformPluginWidget()->updateSurfaceIfNeeded();
+
 }
 
 void PluginView::hide()
 {
     setSelfVisible(false);
     Widget::hide();
+
+   if (platformPluginWidget())
+        platformPluginWidget()->updateSurfaceIfNeeded();
+}
+
+void PluginView::setParentVisible(bool visible) {
+
+    if (isParentVisible() == visible)
+        return;
+
+    Widget::setParentVisible(visible);
+
+    if (platformPluginWidget())
+        platformPluginWidget()->updateSurfaceIfNeeded();
+
 }
 
 void PluginView::paint(GraphicsContext* context, const IntRect& rect)
@@ -645,11 +664,6 @@
     }
 }
 
-// new as of SVN 38068, Nov 5 2008
-void PluginView::setParentVisible(bool) {
-    notImplemented();
-}
-
 void PluginView::halt() {
     notImplemented();
 }
diff --git a/WebKit/android/plugins/PluginDebugAndroid.h b/WebKit/android/plugins/PluginDebugAndroid.h
index 92092d5..3f328f9 100644
--- a/WebKit/android/plugins/PluginDebugAndroid.h
+++ b/WebKit/android/plugins/PluginDebugAndroid.h
@@ -35,7 +35,7 @@
 // Android plug-in code in this directory.
 #define PLUGIN_DEBUG_GLOBAL     0
 
-#if PLUGIN_DEBUG_GLOBAL || defined(PLUGIN_DEBUG_LOCAL)
+#if PLUGIN_DEBUG_GLOBAL || (defined(PLUGIN_DEBUG_LOCAL) && PLUGIN_DEBUG_LOCAL)
 # define PLUGIN_LOG(FORMAT, ARGS...) do { anp_logPlugin(FORMAT, ## ARGS); } while(0)
 # define PLUGIN_LOG_EVENT(NPP, EVT, RET, TIME) do { anp_logPluginEvent(NPP, EVT, RET, TIME); } while(0)
 
diff --git a/WebKit/android/plugins/PluginWidgetAndroid.cpp b/WebKit/android/plugins/PluginWidgetAndroid.cpp
index cec254e..7642f13 100644
--- a/WebKit/android/plugins/PluginWidgetAndroid.cpp
+++ b/WebKit/android/plugins/PluginWidgetAndroid.cpp
@@ -68,6 +68,7 @@
     m_visible = true;
     m_zoomLevel = 0;
     m_embeddedView = NULL;
+    m_embeddedViewAttached = false;
     m_acceptEvents = false;
 }
 
@@ -119,36 +120,13 @@
                        m_pluginWindow->x + m_pluginWindow->width,
                        m_pluginWindow->y + m_pluginWindow->height);
 
-    if (m_drawingModel == kSurface_ANPDrawingModel) {
+    PLUGIN_LOG("%p PluginBounds (%d,%d,%d,%d)", m_pluginView->instance(),
+               m_pluginBounds.fLeft, m_pluginBounds.fTop,
+               m_pluginBounds.fRight, m_pluginBounds.fBottom);
 
-        // if the surface does not exist then create a new surface
-        if (!m_embeddedView) {
+    updateSurfaceIfNeeded(m_pluginBounds != oldPluginBounds);
 
-            WebCore::PluginPackage* pkg = m_pluginView->plugin();
-            NPP instance = m_pluginView->instance();
-
-            jobject pluginSurface;
-            pkg->pluginFuncs()->getvalue(instance, kJavaSurface_ANPGetValue,
-                                         static_cast<void*>(&pluginSurface));
-
-            jobject tempObj = m_core->addSurface(pluginSurface,
-                                                 window->x, window->y,
-                                                 window->width, window->height);
-            if (tempObj) {
-                JNIEnv* env = JSC::Bindings::getJNIEnv();
-                m_embeddedView = env->NewGlobalRef(tempObj);
-            }
-        } else if (m_pluginBounds != oldPluginBounds) {
-            // if the surface exists check for changes and update accordingly
-            if (m_isFullScreen) {
-                m_core->updateFullScreenPlugin(window->x, window->y,
-                        window->width, window->height);
-            } else {
-                m_core->updateSurface(m_embeddedView, window->x, window->y,
-                                      window->width, window->height);
-            }
-        }
-    } else {
+    if (m_drawingModel != kSurface_ANPDrawingModel) {
         m_flipPixelRef->safeUnref();
         m_flipPixelRef = new SkFlipPixelRef(computeConfig(isTransparent),
                                             window->width, window->height);
@@ -231,6 +209,50 @@
     }
 }
 
+void PluginWidgetAndroid::updateSurfaceIfNeeded(bool pluginBoundsChanged) {
+
+    if (m_drawingModel != kSurface_ANPDrawingModel)
+        return;
+
+    PLUGIN_LOG("%p Plugin Visible self=[%d] parent=[%d]", m_pluginView->instance(),
+            m_pluginView->isSelfVisible(), m_pluginView->isParentVisible());
+
+    // if the surface does not exist then create a new surface
+    if (!m_embeddedView && m_pluginView->isVisible()) {
+
+        WebCore::PluginPackage* pkg = m_pluginView->plugin();
+        NPP instance = m_pluginView->instance();
+
+        jobject pluginSurface;
+        pkg->pluginFuncs()->getvalue(instance, kJavaSurface_ANPGetValue,
+                                     static_cast<void*>(&pluginSurface));
+
+        jobject tempObj = m_core->addSurface(pluginSurface,
+                m_pluginWindow->x, m_pluginWindow->y,
+                m_pluginWindow->width, m_pluginWindow->height);
+
+        if (tempObj) {
+            JNIEnv* env = JSC::Bindings::getJNIEnv();
+            m_embeddedView = env->NewGlobalRef(tempObj);
+            m_embeddedViewAttached = true;
+        }
+    // if the view is unattached but visible then attach it
+    } else if (m_embeddedView && !m_embeddedViewAttached && m_pluginView->isVisible() && !m_isFullScreen) {
+        m_core->updateSurface(m_embeddedView, m_pluginWindow->x, m_pluginWindow->y,
+                              m_pluginWindow->width, m_pluginWindow->height);
+        m_embeddedViewAttached = true;
+    // if the view is attached but invisible then remove it
+    } else if (m_embeddedView && m_embeddedViewAttached && !m_pluginView->isVisible()) {
+        m_core->destroySurface(m_embeddedView);
+        m_embeddedViewAttached = false;
+    // if the plugin's bounds have changed and it's visible then update it
+    } else if (pluginBoundsChanged && m_pluginView->isVisible() && !m_isFullScreen) {
+        m_core->updateSurface(m_embeddedView, m_pluginWindow->x, m_pluginWindow->y,
+                              m_pluginWindow->width, m_pluginWindow->height);
+
+    }
+}
+
 int16 PluginWidgetAndroid::sendEvent(const ANPEvent& evt) {
     if (!m_acceptEvents)
         return 0;
@@ -316,16 +338,24 @@
     int newScreenW = m_visibleDocRect.width();
     int newScreenH = m_visibleDocRect.height();
 
-    PLUGIN_LOG("%s VisibleDoc Dimensions old=[%d,%d] new=[%d,%d] ",
-               __FUNCTION__, oldScreenW, oldScreenH, newScreenW, newScreenH);
-
     // if the screen dimensions have changed by more than 5 pixels in either
     // direction then recompute the plugin's visible rectangle
-    if (abs(oldScreenW - newScreenW) > 5 || abs(oldScreenH - newScreenH) > 5)
+    if (abs(oldScreenW - newScreenW) > 5 || abs(oldScreenH - newScreenH) > 5) {
+        PLUGIN_LOG("%s VisibleDoc old=[%d,%d] new=[%d,%d] ", __FUNCTION__,
+                   oldScreenW, oldScreenH, newScreenW, newScreenH);
         computeVisiblePluginRect();
+    }
 
     bool visible = SkIRect::Intersects(m_visibleDocRect, m_pluginBounds);
     if(m_visible != visible) {
+
+#if DEBUG_VISIBLE_RECTS
+        PLUGIN_LOG("%p changeVisiblity[%d] pluginBounds(%d,%d,%d,%d)",
+                   m_pluginView->instance(), visible,
+                   m_pluginBounds.fLeft, m_pluginBounds.fTop,
+                   m_pluginBounds.fRight, m_pluginBounds.fBottom);
+#endif
+
         // change the visibility
         m_visible = visible;
         // send the event
diff --git a/WebKit/android/plugins/PluginWidgetAndroid.h b/WebKit/android/plugins/PluginWidgetAndroid.h
index b47a4b3..7223a16 100644
--- a/WebKit/android/plugins/PluginWidgetAndroid.h
+++ b/WebKit/android/plugins/PluginWidgetAndroid.h
@@ -141,6 +141,13 @@
      */
     bool hasFocus() const { return m_hasFocus; }
 
+    /** Called to ensure the surface is being correctly displayed within the
+        view hierarchy. For instance, if the visibility of the plugin has
+        changed then we need to ensure the surface is added or removed from the
+        view system.
+     */
+    void updateSurfaceIfNeeded(bool pluginBoundsChanged = false);
+
 private:
     void computeVisiblePluginRect();
     void scrollToVisiblePluginRect();
@@ -159,6 +166,7 @@
     bool                    m_visible;
     float                   m_zoomLevel;
     jobject                 m_embeddedView;
+    bool                    m_embeddedViewAttached;
     bool                    m_acceptEvents;
 
     /* We limit the number of rectangles to minimize storage and ensure adequate
