diff --git a/arrays.scad b/arrays.scad
index c31556a9..0a5b4ffb 100644
--- a/arrays.scad
+++ b/arrays.scad
@@ -127,7 +127,7 @@ function select(list, start, end=undef) =
 //   list_range(4);                  // Returns [0,1,2,3]
 //   list_range(n=4, step=2);        // Returns [0,2,4,6]
 //   list_range(n=4, s=3, step=3);   // Returns [3,6,9,12]
-//   list_range(n=4, s=3, e=9, step=3);  // Returns [3,6,9]
+//   list_range(n=5, s=0, e=10);     // Returns [0, 2.5, 5, 7.5, 10]
 //   list_range(e=3);                // Returns [0,1,2,3]
 //   list_range(e=6, step=2);        // Returns [0,2,4,6]
 //   list_range(s=3, e=5);           // Returns [3,4,5]
@@ -135,7 +135,7 @@ function select(list, start, end=undef) =
 //   list_range(s=4, e=8, step=2);   // Returns [4,6,8]
 //   list_range(n=4, s=[3,4], step=[2,3]);  // Returns [[3,4], [5,7], [7,10], [9,13]]
 function list_range(n=undef, s=0, e=undef, step=1) =
-	(n!=undef && e!=undef)? [for (i=[0:1:n-1]) let(v=s+step*i) if (v<=e) v] :
+	(n!=undef && e!=undef)? [for (i=[0:1:n-1]) s+(e-s)*i/(n-1)] :
 	(n!=undef)? [for (i=[0:1:n-1]) let(v=s+step*i) v] :
 	(e!=undef)? [for (v=[s:step:e]) v] :
 	assert(e!=undef||n!=undef, "Must supply one of `n` or `e`.");