diff --git a/src/com/android/settings/InstalledAppDetails.java b/src/com/android/settings/InstalledAppDetails.java
index 5a351dc..a6c2c16 100644
--- a/src/com/android/settings/InstalledAppDetails.java
+++ b/src/com/android/settings/InstalledAppDetails.java
@@ -204,7 +204,7 @@
         boolean moveDisable = true;
         if (dataOnly) {
             mMoveAppButton.setText(R.string.move_app);
-        } else if ((mAppInfo.flags & ApplicationInfo.FLAG_ON_SDCARD) != 0) {
+        } else if ((mAppInfo.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {
             mMoveAppButton.setText(R.string.move_app_to_internal);
             moveDisable = false;
         } else {
@@ -644,7 +644,7 @@
             if (mPackageMoveObserver == null) {
                 mPackageMoveObserver = new PackageMoveObserver();
             }
-            int moveFlags = (mAppInfo.flags & ApplicationInfo.FLAG_ON_SDCARD) != 0 ?
+            int moveFlags = (mAppInfo.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0 ?
                     PackageManager.MOVE_INTERNAL : PackageManager.MOVE_EXTERNAL_MEDIA;
             mMoveAppButton.setText(R.string.moving);
             mMoveAppButton.setEnabled(false);
diff --git a/src/com/android/settings/ManageApplications.java b/src/com/android/settings/ManageApplications.java
index f562f10..af07395 100644
--- a/src/com/android/settings/ManageApplications.java
+++ b/src/com/android/settings/ManageApplications.java
@@ -617,7 +617,7 @@
         if (filterOption == FILTER_APPS_SDCARD) {
             List<ApplicationInfo> appList =new ArrayList<ApplicationInfo> ();
             for (ApplicationInfo appInfo : installedAppList) {
-                if ((appInfo.flags & ApplicationInfo.FLAG_ON_SDCARD) != 0) {
+                if ((appInfo.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {
                     // App on sdcard
                     appList.add(appInfo);
                 }
@@ -694,7 +694,7 @@
         if (filterOption == FILTER_APPS_SDCARD) {
             for (ApplicationInfo appInfo : pAppList) {
                 boolean flag = false;
-                if ((appInfo.flags & ApplicationInfo.FLAG_ON_SDCARD) != 0) {
+                if ((appInfo.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {
                     // App on sdcard
                     flag = true;
                 }
@@ -1269,7 +1269,7 @@
                     return true;
                 }
             } else if (filterOption == FILTER_APPS_SDCARD) {
-                if ((info.flags & ApplicationInfo.FLAG_ON_SDCARD) != 0) {
+                if ((info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {
                     return true;
                 }
             } else {
