diff --git a/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html b/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html
index 24210626a2..6291ed6314 100644
--- a/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html
+++ b/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html
@@ -21,7 +21,7 @@
{% for line in cart.positions %}
-
+
{% if line.addon_to %}
diff --git a/src/pretix/static/pretixpresale/js/ui/main.js b/src/pretix/static/pretixpresale/js/ui/main.js
index 6b5d43229e..7982c1de8a 100644
--- a/src/pretix/static/pretixpresale/js/ui/main.js
+++ b/src/pretix/static/pretixpresale/js/ui/main.js
@@ -130,6 +130,12 @@ var form_handlers = function (el) {
}).on("change", function(e) {
var quantity = parseFloat(this.value) || 0;
var itemOrderMin = parseFloat(this.getAttribute("data-min")) || 0;
+ if (itemOrderMin) {
+ document.querySelectorAll(".cart-row[data-item='"+this.id.substring(5)+"']").forEach(function(row) {
+ itemOrderMin -= (parseFloat(row.getAttribute("data-count")) || 1)
+ });
+ if (itemOrderMin < 0) itemOrderMin = 0;
+ }
if (quantity && quantity < itemOrderMin) {
this.value = this.previousValue > quantity ? 0 : itemOrderMin;
}