diff --git a/src/com/android/settings/applications/AppInfoBase.java b/src/com/android/settings/applications/AppInfoBase.java
index 442b1d8..ef90fd9 100644
--- a/src/com/android/settings/applications/AppInfoBase.java
+++ b/src/com/android/settings/applications/AppInfoBase.java
@@ -69,9 +69,12 @@
     // Dialog identifiers used in showDialog
     protected static final int DLG_BASE = 0;
 
+    protected boolean mFinishing;
+
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        mFinishing = false;
 
         mState = ApplicationsState.getInstance(getActivity().getApplication());
         mSession = mState.newSession(this);
@@ -147,6 +150,7 @@
         intent.putExtra(ManageApplications.APP_CHG, appChanged);
         SettingsActivity sa = (SettingsActivity)getActivity();
         sa.finishPreferencePanel(this, Activity.RESULT_OK, intent);
+        mFinishing = true;
     }
 
     protected void showDialogInner(int id, int moveErrorCode) {
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index c364585..4eb86a9 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -244,14 +244,15 @@
     @Override
     public void onResume() {
         super.onResume();
+        if (mFinishing) {
+            return;
+        }
         AppItem app = new AppItem(mAppEntry.info.uid);
         app.addUid(mAppEntry.info.uid);
         getLoaderManager().restartLoader(LOADER_CHART_DATA,
                 ChartDataLoader.buildArgs(getTemplate(getContext()), app),
                 mDataCallbacks);
-        if (mPackageInfo != null) {
-            new BatteryUpdater().execute();
-        }
+        new BatteryUpdater().execute();
     }
 
     @Override
@@ -269,6 +270,9 @@
 
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
+        if (mFinishing) {
+            return;
+        }
         handleHeader();
 
         mNotificationPreference = findPreference(KEY_NOTIFICATION);
