diff --git a/Lib/asyncio/tasks.py b/Lib/asyncio/tasks.py
index 140539a924a0336108ad17e1082b3c3a282e7a64..ef5c0f9669abbb0e81c58b3dcb7f91127a71d7f4 100644
--- a/Lib/asyncio/tasks.py
+++ b/Lib/asyncio/tasks.py
@@ -444,12 +444,11 @@ async def wait_for(fut, timeout):
     This function is a coroutine.
     """
 
-    if not futures.isfuture(fut):
-        # wrap a coroutine
-        fut = create_task(fut)
+    async def inner():
+        async with timeouts.timeout(timeout):
+            return await fut
 
-    async with timeouts.timeout(timeout):
-        return await fut
+    return await create_task(inner())
 
 
 async def _wait(fs, timeout, return_when, loop):