diff --git a/src/pretix/presale/templates/pretixpresale/event/index.html b/src/pretix/presale/templates/pretixpresale/event/index.html
index 5512b243ac..e49afdee3c 100644
--- a/src/pretix/presale/templates/pretixpresale/event/index.html
+++ b/src/pretix/presale/templates/pretixpresale/event/index.html
@@ -8,7 +8,7 @@
{% block title %}{% trans "Presale" %}{% endblock %}
{% block content %}
- {% if cart.positions %}
+ {% if cart.positions and event.presale_is_running %}
{% trans "Your cart" %}
diff --git a/src/pretix/presale/views/checkout.py b/src/pretix/presale/views/checkout.py
index 93abab4330..18ed1757d8 100644
--- a/src/pretix/presale/views/checkout.py
+++ b/src/pretix/presale/views/checkout.py
@@ -22,6 +22,10 @@ class CheckoutView(View):
messages.error(request, _("Your cart is empty"))
return redirect(eventreverse(self.request.event, 'presale:event.index'))
+ if not request.event.presale_is_running:
+ messages.error(request, _("The presale for this event is over or has not yet started."))
+ return redirect(eventreverse(self.request.event, 'presale:event.index'))
+
cart_error = None
try:
validate_cart.send(sender=self.request.event, positions=cart_pos)