diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index 2284b91..97d7b75 100644
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -564,6 +564,16 @@
             }
         }
         mAppEntry = mState.getEntry(packageName);
+        // Get application info again to refresh changed properties of application
+        try {
+            mPackageInfo = mPm.getPackageInfo(mAppEntry.info.packageName,
+                    PackageManager.GET_DISABLED_COMPONENTS |
+                    PackageManager.GET_UNINSTALLED_PACKAGES |
+                    PackageManager.GET_SIGNATURES);
+        } catch (NameNotFoundException e) {
+            Log.e(TAG, "Exception when retrieving package:" + mAppEntry.info.packageName, e);
+        }
+
         return packageName;
     }
 
@@ -576,18 +586,11 @@
         if (mAppEntry == null) {
             return false; // onCreate must have failed, make sure to exit
         }
-        
-        // Get application info again to refresh changed properties of application
-        try {
-            mPackageInfo = mPm.getPackageInfo(mAppEntry.info.packageName,
-                    PackageManager.GET_DISABLED_COMPONENTS |
-                    PackageManager.GET_UNINSTALLED_PACKAGES |
-                    PackageManager.GET_SIGNATURES);
-        } catch (NameNotFoundException e) {
-            Log.e(TAG, "Exception when retrieving package:" + mAppEntry.info.packageName, e);
+
+        if (mPackageInfo == null) {
             return false; // onCreate must have failed, make sure to exit
         }
-        
+
         // Get list of preferred activities
         List<ComponentName> prefActList = new ArrayList<ComponentName>();
         
