ok i have this rigged up so if they try to switch something the way it already is it echos and tell them its already on or off respectively

the second echo for each of the autoback buttons isnt firing
the first is firing fine

i originally just had it as an else as you see in the rest of the code but i tried a elseif just in case though it shouldnt make a difference

Code:
#away on
alias away.off {
  if (%away = on) {
    /set %away off
    echo 5 -a Away is off.
    set %chan 1
    set %cnum $chan(0)      
    while (%chan <= %cnum) {
      notice $chan(%chan) $me is back.    
      inc %chan      
    }    
  }      
  else {
    echo 5 -a away is already off.
  }
}  
alias away.on {
  if (%away = off) {
    /set %away on
    echo 5 -a Away is on.
    set %chan 1
    set %cnum $chan(0)      
    while (%chan <= %cnum) {
      notice $chan(%chan) $me is away.    
      inc %chan      
    }      
  }      
  else {
    echo 5 -a away is already on.   
  }
}    
on *:Connect: { 
  .timeraway 0 10 away.idle 
}
alias away.idle {
  if (($idle >= 600) && (%away != on)) {
    away.on
  }
}
menu channel {
  auto away 
  .auto back  
  ..on {
    if ($group(#autoback) == off) {
      enable #autoback
      echo 5 -a auto back is on
      elseif ($group(#autoback) == on) {
        echo 5 -a auto back is already on
      }
    }
  }
  ..off {
    if ($group(#autoback) == on) {
      disable #autoback
      echo 5 -a auto back is off
      elseif ($group(#autoback) == off) {
        echo 5 -a auto back is already off
      }
    }
  }
  .on { 
    away.on
  }
  .off {
    away.off
  }
}
on *:text:*:?:{
  if (%away == on) {
    msg $nick I'm currently away from the keyboard
    closemsg $nick 
  }
}
#away end

#autoback on
on *:input:#:{
  if (%away = on) { 
    away.off
  }
}
#autoback end