diff --git a/kenwood/kenwood.c b/kenwood/kenwood.c
index 3aeb99965..9cc14667d 100644
--- a/kenwood/kenwood.c
+++ b/kenwood/kenwood.c
@@ -727,6 +727,25 @@ int kenwood_set_vfo(RIG *rig, vfo_t vfo)
     return -RIG_EINVAL;
   }
 
+  //if rig=ts2000 then check Satellite mode status
+  if(rig->caps->rig_model == RIG_MODEL_TS2000) {
+	  char retbuf[20];
+	  rig_debug(RIG_DEBUG_VERBOSE, "Checking Satellite mode status\n");
+	  sprintf(cmdbuf, "SA");
+
+	  retval = kenwood_transaction(rig, cmdbuf, retbuf, 20);
+	  if (retval != RIG_OK)
+	    return retval;
+
+	  rig_debug(RIG_DEBUG_VERBOSE, "Satellite mode status %s\n",retbuf);
+	  //Satellite mode ON
+	  if(retbuf[2]=='1') {
+		  //SAT mode doesn't allow FR command (cannot select VFO)
+		  //selecting VFO is useless in SAT MODE
+		  return RIG_OK;
+		  }
+	  }
+
   sprintf(cmdbuf, "FR%c", vfo_function);
 
   if (rig->caps->rig_model == RIG_MODEL_TS50