   if (v >= 10)
     addInt(msg, v / 10);
   addCh(msg, '0' + v % 10);
+}
+
+static void RF_reset (word n) {
+    rf12_config(n);
+    rf12_control(0xA000 + config.frequency); 
 }
 
 static void saveConfig () {

    rf12_initialize(stack[2], bandToFreq(stack[0]), stack[1]);
    rf12_sendNow(stack[3], stack + 4, top - 4);
    rf12_sendWait(2);
    rf12_config(0); // restore original band, etc
    value = top = 0;
    memset(stack, 0, sizeof stack);
  } else if (' ' < c && c < 'A')

        activityLed(1);
        fs20cmd(256 * stack[0] + stack[1], stack[2], value);
        activityLed(0);
        RF_reset(0); // restore normal packet listening mode
        break;
      case 'k': // send KAKU command: <addr>,<dev>,<on>k
        rf12_initialize(0, RF12_433MHZ);
        activityLed(1);
        kakuSend(stack[0], stack[1], value);
        activityLed(0);
        RF_reset(0); // restore normal packet listening mode
        break;
      case 'd': // dump all log markers
        if (df_present())
