diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py
index 845b804c0a996723e5e9c38de7cc6ae60bff43a3..ee2155e6eb33f012a36d08a692779f03d735576e 100644
--- a/aleksis/apps/alsijil/views.py
+++ b/aleksis/apps/alsijil/views.py
@@ -124,7 +124,8 @@ def lesson(
         if lesson_documentation_form.is_valid() and request.user.has_perm(
             "alsijil.edit_lessondocumentation", lesson_period
         ):
-            lesson_documentation_form.save()
+            with reversion.create_revision():
+                lesson_documentation_form.save()
 
             messages.success(request, _("The lesson documentation has been saved."))
 
diff --git a/tox.ini b/tox.ini
index eca63a758a5f6a20b1cd11887330817fec7908d7..cbe278cd8f7b1f3cd38760cb63a1b009786edcd2 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,7 +1,7 @@
 [tox]
 skipsdist = True
 skip_missing_interpreters = true
-envlist = py37,py38
+envlist = py37,py38,py39
 
 [testenv]
 whitelist_externals = poetry
@@ -22,8 +22,8 @@ setenv =
 
 [testenv:lint]
 commands =
-    - poetry run black --check --diff aleksis/
-    - poetry run isort -c --diff --stdout aleksis/
+    poetry run black --check --diff aleksis/
+    poetry run isort -c --diff --stdout aleksis/
     poetry run flake8 {posargs} aleksis/
 
 [testenv:security]