Why is my adder giving me the wrong output?
http://sourceforge.net/p/circuit/discussion/479544/thread/e874d0a7/

^The answer is explained in this discussion. It's not a bug but a "feature" in logisim.


  "This is not a bug, but rather a design decision that you happen to disagree with. How XOR is "supposed" to work is more controversial than you seem to think. By default, Logisim takes the interpretation that a XOR gate means "exactly one" bit must be set: Thus, the XOR of three 1's is 0, since more than one of input is 1. I know you think that the XOR of three 1's should be 1, since an odd number of bits are 1. If Logisim were changed to work your way by default, then others would complain that I broke the XOR gate - admittedly fewer people, but still a substantial fraction of Logisim users.
  Fortunately, Logisim does have the ability for you to modify the XOR gate's behavior: With the XOR gate selected, go to the attribute table in the lower-left corner, and modify "Multiple-Input Behavior" to "When an odd number are on." Alternatively, you can use an Odd Parity gate."