--- a/blitz/range.h
+++ b/blitz/range.h
@@ -85,7 +85,7 @@
         stride_ = 1;
     }
 
-    Range(T_numtype first, T_numtype last, T_numtype stride=1)
+    Range(T_numtype first, T_numtype last, diffType stride=1)
         : first_(first), last_(last), stride_(stride)
     { 
         BZPRECHECK((first == fromStart) || (last == toEnd) ||
@@ -119,7 +119,7 @@
         return (last_ - first_) / stride_ + 1;
     }
 
-    T_numtype stride() const
+    diffType stride() const
     { return stride_; }
 
     bool isAscendingContiguous() const
@@ -127,7 +127,7 @@
         return (((first_ < last_) && (stride_ == 1)) || (first_ == last_));
     }
 
-    void setRange(T_numtype first, T_numtype last, T_numtype stride=1)
+    void setRange(T_numtype first, T_numtype last, diffType stride=1)
     {
         BZPRECONDITION(((first < last) && (stride > 0)) ||
             ((first > last) && (stride < 0)) ||
@@ -203,7 +203,8 @@
     { return _bz_VecExpr<Range>(*this); }
 
 private:
-    T_numtype first_, last_, stride_;
+  T_numtype first_, last_;
+  diffType stride_;
 };
 
 BZ_NAMESPACE_END