diff --git a/motor/core.py b/motor/core.py
index <HASH>..<HASH> 100644
--- a/motor/core.py
+++ b/motor/core.py
@@ -1215,8 +1215,8 @@ class AgnosticBaseCursor(AgnosticBase):
             return self
 
         async def __anext__(self):
-            # TODO: no need for await on each
-            if await self.fetch_next:
+            # An optimization: skip the "await" if possible.
+            if self._buffer_size() or await self.fetch_next:
                 return self.next_object()
             raise StopAsyncIteration()
         """), globals(), locals())
MOTOR-<I> Speed up "async for".

A 3x improvement in my trivial benchmark.