diff --git a/shill/doc/manager-api.txt b/shill/doc/manager-api.txt
index dd6bb86..ba72c68 100644
--- a/shill/doc/manager-api.txt
+++ b/shill/doc/manager-api.txt
@@ -640,5 +640,4 @@
 		bool WiFi.GlobalFTEnabled [readwrite]
 
 			Specifies whether or not 802.11r Fast BSS Transition should be
-			used. This global switch, in addition to the WiFi.FTEnabled service
-			property, needs to be turned on in order for FT to be used.
+			used.
diff --git a/shill/doc/service-api.txt b/shill/doc/service-api.txt
index e3fe03e..501d9b0 100644
--- a/shill/doc/service-api.txt
+++ b/shill/doc/service-api.txt
@@ -1732,12 +1732,6 @@
 			c) some scan results may have expired from the
 			   cache.
 
-		boolean WiFi.FTEnabled [readwrite]
-
-			(WiFi only) If true, Fast Transition will be
-			enabled. This property instructs shill to pass
-			the FT key management suites to wpa_supplicant.
-
 		string WiFi.PhyMode [readonly]
 
 			(WiFi only) If the service state is
diff --git a/shill/wifi/wifi_service.cc b/shill/wifi/wifi_service.cc
index 5f5839a..f4a5adf 100644
--- a/shill/wifi/wifi_service.cc
+++ b/shill/wifi/wifi_service.cc
@@ -74,7 +74,6 @@
       security_(security_class),
       mode_(mode),
       hidden_ssid_(hidden_ssid),
-      ft_enabled_(true),
       frequency_(0),
       physical_mode_(Metrics::kWiFiNetworkPhyModeUndef),
       raw_signal_strength_(0),
@@ -106,7 +105,6 @@
   store->RegisterConstUint16s(kWifiFrequencyListProperty, &frequency_list_);
   store->RegisterConstUint16(kWifiPhyMode, &physical_mode_);
   store->RegisterConstString(kWifiBSsid, &bssid_);
-  store->RegisterBool(kWifiFTEnabled, &ft_enabled_);
   store->RegisterConstString(kCountryProperty, &country_code_);
   store->RegisterConstStringmap(kWifiVendorInformationProperty,
                                 &vendor_information_);
@@ -611,7 +609,7 @@
   }
 
   string key_mgmt = key_management();
-  if (manager()->ft_enabled() && ft_enabled_) {
+  if (manager()->ft_enabled()) {
     if (key_mgmt == WPASupplicant::kKeyManagementWPAPSK)
       key_mgmt =
           base::StringPrintf("%s %s", WPASupplicant::kKeyManagementWPAPSK,
diff --git a/shill/wifi/wifi_service.h b/shill/wifi/wifi_service.h
index 0415450..ba119b3 100644
--- a/shill/wifi/wifi_service.h
+++ b/shill/wifi/wifi_service.h
@@ -183,7 +183,6 @@
   FRIEND_TEST(WiFiServiceTest, ConnectTaskPSK);
   FRIEND_TEST(WiFiServiceTest, ConnectTaskRawPMK);
   FRIEND_TEST(WiFiServiceTest, ConnectTaskWEP);
-  FRIEND_TEST(WiFiServiceTest, ConnectTaskFT);
   FRIEND_TEST(WiFiServiceTest, GetTethering);
   FRIEND_TEST(WiFiServiceTest, IsAutoConnectable);
   FRIEND_TEST(WiFiServiceTest, LoadHidden);
@@ -306,7 +305,6 @@
   // with this service instead.
   const std::string mode_;
   bool hidden_ssid_;
-  bool ft_enabled_;
   uint16_t frequency_;
   std::vector<uint16_t> frequency_list_;
   uint16_t physical_mode_;
diff --git a/shill/wifi/wifi_service_test.cc b/shill/wifi/wifi_service_test.cc
index 30cea04..9399563 100644
--- a/shill/wifi/wifi_service_test.cc
+++ b/shill/wifi/wifi_service_test.cc
@@ -561,18 +561,11 @@
     WiFiServiceRefPtr wifi_service = MakeServiceWithWiFi(kSecurityPsk);
 
     manager()->ft_enabled_ = false;
-    wifi_service->ft_enabled_ = false;
     wifi_service->Connect(nullptr, "in test");
     KeyValueStore params = wifi_service->GetSupplicantConfigurationParameters();
     EXPECT_EQ("WPA-PSK", params.Get<string>(
                              WPASupplicant::kNetworkPropertyEapKeyManagement));
 
-    wifi_service->ft_enabled_ = true;
-    wifi_service->Connect(nullptr, "in test");
-    params = wifi_service->GetSupplicantConfigurationParameters();
-    EXPECT_EQ("WPA-PSK", params.Get<string>(
-                             WPASupplicant::kNetworkPropertyEapKeyManagement));
-
     manager()->ft_enabled_ = true;
     wifi_service->Connect(nullptr, "in test");
     params = wifi_service->GetSupplicantConfigurationParameters();
@@ -587,18 +580,11 @@
     wifi_service->OnEapCredentialsChanged(Service::kReasonCredentialsLoaded);
 
     manager()->ft_enabled_ = false;
-    wifi_service->ft_enabled_ = false;
     wifi_service->Connect(nullptr, "in test");
     KeyValueStore params = wifi_service->GetSupplicantConfigurationParameters();
     EXPECT_EQ("WPA-EAP", params.Get<string>(
                              WPASupplicant::kNetworkPropertyEapKeyManagement));
 
-    wifi_service->ft_enabled_ = true;
-    wifi_service->Connect(nullptr, "in test");
-    params = wifi_service->GetSupplicantConfigurationParameters();
-    EXPECT_EQ("WPA-EAP", params.Get<string>(
-                             WPASupplicant::kNetworkPropertyEapKeyManagement));
-
     manager()->ft_enabled_ = true;
     wifi_service->Connect(nullptr, "in test");
     params = wifi_service->GetSupplicantConfigurationParameters();
diff --git a/system_api/dbus/shill/dbus-constants.h b/system_api/dbus/shill/dbus-constants.h
index 3379791..98df27a 100644
--- a/system_api/dbus/shill/dbus-constants.h
+++ b/system_api/dbus/shill/dbus-constants.h
@@ -210,7 +210,6 @@
 const char kSecurityProperty[] = "Security";
 const char kSSIDProperty[] = "SSID";
 const char kWifiBSsid[] = "WiFi.BSSID";
-const char kWifiFTEnabled[] = "WiFi.FTEnabled";
 const char kWifiFrequencyListProperty[] = "WiFi.FrequencyList";
 const char kWifiFrequency[] = "WiFi.Frequency";
 const char kWifiHexSsid[] = "WiFi.HexSSID";
