diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index 53ac1bb..a34b557 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -370,11 +370,6 @@
             android:key="force_resizable_activities"
             android:title="@string/force_resizable_activities"
             android:summary="@string/force_resizable_activities_summary"/>
-
-        <SwitchPreference
-                android:key="enable_freeform_support"
-                android:title="@string/enable_freeform_support"
-                android:summary="@string/enable_freeform_support_summary"/>
      </PreferenceCategory>
 
 </PreferenceScreen>
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index 943a4e6..3e5fa0a 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -178,7 +178,6 @@
     private static final String MOBILE_DATA_ALWAYS_ON = "mobile_data_always_on";
     private static final String KEY_COLOR_MODE = "color_mode";
     private static final String FORCE_RESIZABLE_KEY = "force_resizable_activities";
-    private static final String ENABLE_FREEFORM_SUPPORT_KEY = "enable_freeform_support";
     private static final String COLOR_TEMPERATURE_KEY = "color_temperature";
 
     private static final String BLUETOOTH_DISABLE_ABSOLUTE_VOLUME_KEY =
@@ -298,8 +297,6 @@
 
     private SwitchPreference mForceResizable;
 
-    private SwitchPreference mEnableFreeformSupport;
-
     private SwitchPreference mColorTemperaturePreference;
 
     private final ArrayList<Preference> mAllPrefs = new ArrayList<Preference>();
@@ -440,7 +437,6 @@
         mSimulateColorSpace = addListPreference(SIMULATE_COLOR_SPACE);
         mUSBAudio = findAndInitSwitchPref(USB_AUDIO_KEY);
         mForceResizable = findAndInitSwitchPref(FORCE_RESIZABLE_KEY);
-        mEnableFreeformSupport = findAndInitSwitchPref(ENABLE_FREEFORM_SUPPORT_KEY);
 
         mImmediatelyDestroyActivities = (SwitchPreference) findPreference(
                 IMMEDIATELY_DESTROY_ACTIVITIES_KEY);
@@ -723,7 +719,6 @@
         updateSimulateColorSpace();
         updateUSBAudioOptions();
         updateForceResizableOptions();
-        updateEnableFreeformWindowsSupportOptions();
         updateWebViewMultiprocessOptions();
         updateWebViewProviderOptions();
         updateOemUnlockOptions();
@@ -1377,17 +1372,6 @@
                 mForceResizable.isChecked() ? 1 : 0);
     }
 
-    private void updateEnableFreeformWindowsSupportOptions() {
-        updateSwitchPreference(mEnableFreeformSupport, Settings.Global.getInt(getContentResolver(),
-                Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, 0) != 0);
-    }
-
-    private void writeEnableFreeformWindowsSupportOptions() {
-        Settings.Global.putInt(getContentResolver(),
-                Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT,
-                mEnableFreeformSupport.isChecked() ? 1 : 0);
-    }
-
     private void updateForceRtlOptions() {
         updateSwitchPreference(mForceRtlLayout,
                 Settings.Global.getInt(getActivity().getContentResolver(),
@@ -1932,8 +1916,6 @@
             writeUSBAudioOptions();
         } else if (preference == mForceResizable) {
             writeForceResizableOptions();
-        } else if (preference == mEnableFreeformSupport){
-            writeEnableFreeformWindowsSupportOptions();
         } else if (INACTIVE_APPS_KEY.equals(preference.getKey())) {
             startInactiveAppsFragment();
         } else if (BACKGROUND_CHECK_KEY.equals(preference.getKey())) {
