diff --git a/ArduPlane/ArduPlane.pde b/ArduPlane/ArduPlane.pde
index 417e98720f6d938bcad5ce3101349b4a294af782..48ea137d4fe65bfa2addc67b141f3917317d3c82 100644
--- a/ArduPlane/ArduPlane.pde
+++ b/ArduPlane/ArduPlane.pde
@@ -374,8 +374,6 @@ static struct {
 // Failsafe
 ////////////////////////////////////////////////////////////////////////////////
 static struct {
-    // A flag if GCS joystick control is in use
-    uint8_t rc_override_active:1;
 
     // Used to track if the value on channel 3 (throtttle) has fallen below the failsafe threshold
     // RC receiver should be set up to output a low throttle value when signal is lost
diff --git a/ArduPlane/radio.pde b/ArduPlane/radio.pde
index b1f743b8f8801ab4d7c2dd558644bfeac7d7c94e..ac4fecb1f22a59a24cc7d2a478a2d8e4ce040c88 100644
--- a/ArduPlane/radio.pde
+++ b/ArduPlane/radio.pde
@@ -193,18 +193,7 @@ static void control_failsafe(uint16_t pwm)
     if(g.throttle_fs_enabled == 0)
         return;
 
-    // Check for failsafe condition based on loss of GCS control
-    if (failsafe.rc_override_active) {
-        if (millis() - failsafe.last_heartbeat_ms > g.short_fs_timeout*1000) {
-            failsafe.ch3_failsafe = true;
-            AP_Notify::flags.failsafe_radio = true;
-        } else {
-            failsafe.ch3_failsafe = false;
-            AP_Notify::flags.failsafe_radio = false;
-        }
-
-        //Check for failsafe and debounce funky reads
-    } else if (g.throttle_fs_enabled) {
+    if (g.throttle_fs_enabled) {
         if (rc_failsafe_active()) {
             // we detect a failsafe from radio
             // throttle has dropped below the mark
diff --git a/ArduPlane/system.pde b/ArduPlane/system.pde
index 769d3bc4d834570c0269a41020c9d19ba4e94ea0..d29d674954ad114229c85d1f48557f7b802d5c43 100644
--- a/ArduPlane/system.pde
+++ b/ArduPlane/system.pde
@@ -449,10 +449,7 @@ static void check_long_failsafe()
     // only act on changes
     // -------------------
     if(failsafe.state != FAILSAFE_LONG && failsafe.state != FAILSAFE_GCS) {
-        if (failsafe.rc_override_active && (tnow - failsafe.last_heartbeat_ms) > g.long_fs_timeout*1000) {
-            failsafe_long_on_event(FAILSAFE_LONG);
-        } else if (!failsafe.rc_override_active && 
-                   failsafe.state == FAILSAFE_SHORT && 
+        if (failsafe.state == FAILSAFE_SHORT &&
                    (tnow - failsafe.ch3_timer_ms) > g.long_fs_timeout*1000) {
             failsafe_long_on_event(FAILSAFE_LONG);
         } else if (g.gcs_heartbeat_fs_enabled != GCS_FAILSAFE_OFF && 
@@ -470,11 +467,6 @@ static void check_long_failsafe()
             (tnow - failsafe.last_heartbeat_ms) < g.short_fs_timeout*1000) {
             failsafe.state = FAILSAFE_NONE;
         } else if (failsafe.state == FAILSAFE_LONG && 
-                   failsafe.rc_override_active && 
-                   (tnow - failsafe.last_heartbeat_ms) < g.short_fs_timeout*1000) {
-            failsafe.state = FAILSAFE_NONE;
-        } else if (failsafe.state == FAILSAFE_LONG && 
-                   !failsafe.rc_override_active && 
                    !failsafe.ch3_failsafe) {
             failsafe.state = FAILSAFE_NONE;
         }