diff --git a/doc/README.md b/doc/README.md
index f17a7d9f4..b776a9db6 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -2221,7 +2221,7 @@ _.template('<%= data.hasWith %>', { 'hasWith': 'no' }, { 'variable': 'data' });
### `_.throttle(func, wait)`
# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2174 "View in source") [Ⓣ][1]
-Creates a new function that, when executed, will only call the `func` function at most once per every `wait` milliseconds. If the throttled function is invoked more than once, `func` will also be called on the trailing edge of the `wait` timeout. Subsequent calls to the throttled function will return the result of the last `func` call.
+Creates a new function that, when executed, will only call the `func` function at most once per every `wait` milliseconds. If the throttled function is invoked more than once during the `wait` timeout, `func` will also be called on the trailing edge of the timeout. Subsequent calls to the throttled function will return the result of the last `func` call.
#### Arguments
1. `func` *(Function)*: The function to throttle.
diff --git a/lodash.js b/lodash.js
index 43ddcb208..c531b1185 100644
--- a/lodash.js
+++ b/lodash.js
@@ -2155,10 +2155,10 @@
/**
* Creates a new function that, when executed, will only call the `func`
- * function at most once per every `wait` milliseconds. If the throttled function
- * is invoked more than once, `func` will also be called on the trailing edge
- * of the `wait` timeout. Subsequent calls to the throttled function will
- * return the result of the last `func` call.
+ * function at most once per every `wait` milliseconds. If the throttled
+ * function is invoked more than once during the `wait` timeout, `func` will
+ * also be called on the trailing edge of the timeout. Subsequent calls to the
+ * throttled function will return the result of the last `func` call.
*
* @static
* @memberOf _
diff --git a/test/test.js b/test/test.js
index 764d4d311..78711a495 100644
--- a/test/test.js
+++ b/test/test.js
@@ -642,6 +642,23 @@
}
ok(counter > 1);
});
+
+ asyncTest('supports recursive calls', function() {
+ var counter = 0;
+ var throttled = _.throttle(function() {
+ counter++;
+ if (counter < 4) {
+ throttled();
+ }
+ }, 100);
+
+ setTimeout(function() {
+ ok(counter > 1);
+ QUnit.start();
+ }, 220);
+
+ throttled();
+ });
}());
/*--------------------------------------------------------------------------*/
@@ -790,6 +807,7 @@
/*--------------------------------------------------------------------------*/
// explicitly call `QUnit.start()` for Narwhal, Rhino, and RingoJS
- QUnit.start();
-
+ if (!window.document) {
+ QUnit.start();
+ }
}(typeof global == 'object' && global || this));