diff --git a/doc_src/while.txt b/doc_src/while.txt
index 38338792f..5fb851768 100644
--- a/doc_src/while.txt
+++ b/doc_src/while.txt
@@ -9,10 +9,8 @@ while CONDITION; COMMANDS...; end
`while` repeatedly executes `CONDITION`, and if the exit status is 0, then executes `COMMANDS`.
-If the exit status of `CONDITION` is non-zero on the first iteration, `COMMANDS` will not be
-executed at all, and the exit status of the loop set to the exit status of `CONDITION`.
-
-The exit status of the loop is 0 otherwise.
+The exit status of the while loop is the exit status of the last iteration of the `COMMANDS` executed,
+or 0 if none were executed. (This matches other shells and is POSIX-compatible.)
You can use `and` or `or` for complex conditions. Even more complex control can be achieved with `while true` containing a break.