Byzantine Generals Problem

This is a classic problem in fault-tolerant system design. Through the replication of services (computations) a system attempts to continue to operate in a reasonably correct manner in the presents of errors (e.g., faults). 

The situation: 

Four commanders are ready to either attack or retreat, but they must all perform the same operation to be successful;
They have direct and perfect communication lines among them: that is, there are neither mistakes nor cut communication lines;
All commanders must make the same final decision;
Every commander must base his decision on the correct information from every loyal commander.

The Problem:

One commander maybe a traitor, who will obey orders, but send out false ones to his fellow commanders.
Every commander must use the same procedure to make his decision.

The Solution:

Since every commander has direct and reliable communications with every other commander, and considering the case of only one traitor, each commander should:
Send the command to all other commanders;
Review the commands sent by the other commanders and use a majority voting scheme to decide.
While the traitor can send false orders, he too must obey the majority scheme, thus, all commanders will execute the same order.

Questions:

Does this work for 3, 5, 6, or 7 commanders, argue your points.