diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 8569550..a6c5602 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -223,10 +223,22 @@
     }
 
     protected void handleOnResume() {
+        // Note: Intentionally left blank.
+    }
+
+    protected void handleOnStart() {
         mController.onResume();
     }
 
     @Override
+    protected void onStop() {
+        mEngineInitializer.onActivityStop();
+        super.onStop();
+        // Note: Do not add any more application logic in this method.
+        //       Move any additional app logic into handleOnStop().
+    }
+
+    @Override
     public boolean onMenuOpened(int featureId, Menu menu) {
         if (Window.FEATURE_OPTIONS_PANEL == featureId) {
             mController.onMenuOpened(featureId, menu);
@@ -267,6 +279,10 @@
     }
 
     protected void handleOnPause() {
+        // Note: Intentionally left blank
+    }
+
+    protected void handleOnStop() {
         mController.onPause();
     }
 
diff --git a/src/com/android/browser/EngineInitializer.java b/src/com/android/browser/EngineInitializer.java
index 03a18f6..7beb98d 100644
--- a/src/com/android/browser/EngineInitializer.java
+++ b/src/com/android/browser/EngineInitializer.java
@@ -264,14 +264,20 @@
     public void onActivityPause() {
         mOnResumePending = false;
         if (mActivityReady) {
-            Engine.pauseTracing(mActivity.getApplicationContext());
             mActivity.handleOnPause();
         }
     }
 
+    public void onActivityStop() {
+        mActivityStartPending = false;
+        if (mActivityReady) {
+            Engine.pauseTracing(mActivity.getApplicationContext());
+            mActivity.handleOnStop();
+        }
+    }
+
     public void onActivityResume() {
         if (mActivityReady) {
-            Engine.resumeTracing(mActivity.getApplicationContext());
             mActivity.handleOnResume();
             return;
         }
@@ -280,6 +286,8 @@
 
     public void onActivityStart() {
         if (mActivityReady) {
+            Engine.resumeTracing(mActivity.getApplicationContext());
+            mActivity.handleOnStart();
             // TODO: We have no reliable mechanism to know when the app goes background.
             //ChildProcessLauncher.onBroughtToForeground();
             return;
