diff --git a/lib/Analysis/ScalarEvolution.cpp b/lib/Analysis/ScalarEvolution.cpp
index 122dba3..65cee82 100644
--- a/lib/Analysis/ScalarEvolution.cpp
+++ b/lib/Analysis/ScalarEvolution.cpp
@@ -2527,19 +2527,17 @@
   if (AddRec->isAffine()) {
     // The number of iterations for "{n,+,1} < m", is m-n.  However, we don't
     // know that m is >= n on input to the loop.  If it is, the condition
-    // returns true zero times.  To handle both cases, we return SMAX(0, m-n).
+    // returns true zero times.  To handle both cases, we return SMAX(m, n)-n.
 
     // FORNOW: We only support unit strides.
     SCEVHandle One = SE.getIntegerSCEV(1, RHS->getType());
     if (AddRec->getOperand(1) != One)
       return UnknownValue;
 
-    SCEVHandle Iters = SE.getMinusSCEV(RHS, AddRec->getOperand(0));
+    SCEVHandle Start = AddRec->getOperand(0);
+    SCEVHandle End = isSigned ? SE.getSMaxExpr(RHS, Start) : (SCEVHandle)RHS;
 
-    if (isSigned)
-      return SE.getSMaxExpr(SE.getIntegerSCEV(0, RHS->getType()), Iters);
-    else
-      return Iters;
+    return SE.getMinusSCEV(End, Start);
   }
 
   return UnknownValue;
diff --git a/test/Analysis/ScalarEvolution/2008-02-12-SMAXTripCount.ll b/test/Analysis/ScalarEvolution/2008-02-12-SMAXTripCount.ll
new file mode 100644
index 0000000..292ea99
--- /dev/null
+++ b/test/Analysis/ScalarEvolution/2008-02-12-SMAXTripCount.ll
@@ -0,0 +1,16 @@
+; RUN: llvm-as < %s | opt -scalar-evolution -analyze | grep {Loop loop: ( 100 + ( -100 smax  %n)) iterations!}
+; PR2002
+
+define void @foo(i8 %n) {
+entry:
+	br label %loop
+loop:
+	%i = phi i8 [ -100, %entry ], [ %i.inc, %next ]
+	%cond = icmp slt i8 %i, %n
+	br i1 %cond, label %next, label %return
+next:
+        %i.inc = add i8 %i, 1
+	br label %loop
+return:
+	ret void
+}
