diff --git a/fasthtml/core.py b/fasthtml/core.py
index 8f44423b..4bfaea0f 100644
--- a/fasthtml/core.py
+++ b/fasthtml/core.py
@@ -198,6 +198,7 @@ async def _find_p(conn, data, hdrs, arg:str, p:Parameter):
if issubclass(anno, Starlette): return conn.scope['app']
if issubclass(anno, HTTPConnection): return conn
if issubclass(anno, State): return conn.scope['app'].state
+ if 'session'.startswith(arg.lower()) and anno is dict: return conn.scope.get('session', {})
if anno is dict: return data
if _is_body(anno):
if 'session'.startswith(arg.lower()): return conn.scope.get('session', {})
diff --git a/nbs/api/00_core.ipynb b/nbs/api/00_core.ipynb
index 3472b243..34ffec82 100644
--- a/nbs/api/00_core.ipynb
+++ b/nbs/api/00_core.ipynb
@@ -790,6 +790,7 @@
" if issubclass(anno, Starlette): return conn.scope['app']\n",
" if issubclass(anno, HTTPConnection): return conn\n",
" if issubclass(anno, State): return conn.scope['app'].state\n",
+ " if 'session'.startswith(arg.lower()) and anno is dict: return conn.scope.get('session', {})\n",
" if anno is dict: return data\n",
" if _is_body(anno):\n",
" if 'session'.startswith(arg.lower()): return conn.scope.get('session', {})\n",
diff --git a/tests/test_toaster.py b/tests/test_toaster.py
index 7049fe7d..3ad2b8c2 100644
--- a/tests/test_toaster.py
+++ b/tests/test_toaster.py
@@ -46,9 +46,11 @@ def test_ft_response():
assert 'Toast FtResponse' in res.text
def test_get_toaster_with_typehint():
+ cli.get('/set-toast-get', follow_redirects=False)
res = cli.get('/see-toast-with-typehint', follow_redirects=False)
assert 'Toast get' in res.text
+ cli.get('/set-toast-get', follow_redirects=False)
res = cli.get('/see-toast-with-typehint', follow_redirects=True)
assert 'Toast get' in res.text