diff --git a/lib/Analysis/InstructionSimplify.cpp b/lib/Analysis/InstructionSimplify.cpp
index 157193d..f35d505 100644
--- a/lib/Analysis/InstructionSimplify.cpp
+++ b/lib/Analysis/InstructionSimplify.cpp
@@ -492,7 +492,8 @@
 
   /// i1 add -> xor.
   if (MaxRecurse && Op0->getType()->isIntegerTy(1))
-    return SimplifyXorInst(Op0, Op1, TD, DT, MaxRecurse-1);
+    if (Value *V = SimplifyXorInst(Op0, Op1, TD, DT, MaxRecurse-1))
+      return V;
 
   // Try some generic simplifications for associative operations.
   if (Value *V = SimplifyAssociativeBinOp(Instruction::Add, Op0, Op1, TD, DT,
@@ -555,7 +556,8 @@
 
   /// i1 sub -> xor.
   if (MaxRecurse && Op0->getType()->isIntegerTy(1))
-    return SimplifyXorInst(Op0, Op1, TD, DT, MaxRecurse-1);
+    if (Value *V = SimplifyXorInst(Op0, Op1, TD, DT, MaxRecurse-1))
+      return V;
 
   // Mul distributes over Sub.  Try some generic simplifications based on this.
   if (Value *V = FactorizeBinOp(Instruction::Sub, Op0, Op1, Instruction::Mul,
@@ -608,7 +610,8 @@
 
   /// i1 mul -> and.
   if (MaxRecurse && Op0->getType()->isIntegerTy(1))
-    return SimplifyAndInst(Op0, Op1, TD, DT, MaxRecurse-1);
+    if (Value *V = SimplifyAndInst(Op0, Op1, TD, DT, MaxRecurse-1))
+      return V;
 
   // Try some generic simplifications for associative operations.
   if (Value *V = SimplifyAssociativeBinOp(Instruction::Mul, Op0, Op1, TD, DT,
diff --git a/test/Transforms/InstSimplify/2010-12-20-I1Arithmetic.ll b/test/Transforms/InstSimplify/2010-12-20-I1Arithmetic.ll
new file mode 100644
index 0000000..8b795ea
--- /dev/null
+++ b/test/Transforms/InstSimplify/2010-12-20-I1Arithmetic.ll
@@ -0,0 +1,22 @@
+; RUN: opt < %s -instsimplify -S | FileCheck %s
+
+define i1 @add(i1 %x) {
+; CHECK: @add
+  %z = add i1 %x, %x
+  ret i1 %z
+; CHECK: ret i1 false
+}
+
+define i1 @sub(i1 %x) {
+; CHECK: @sub
+  %z = sub i1 false, %x
+  ret i1 %z
+; CHECK: ret i1 %x
+}
+
+define i1 @mul(i1 %x) {
+; CHECK: @mul
+  %z = mul i1 %x, %x
+  ret i1 %z
+; CHECK: ret i1 %x
+}
