diff --git a/src/readouts/ADCs.jl b/src/readouts/ADCs.jl
index c92a95583a65092040ffe019383aec01e7d0255c..ad18bd1ace2a50101c7edcfa5f5a46854a9d5ed0 100644
--- a/src/readouts/ADCs.jl
+++ b/src/readouts/ADCs.jl
@@ -1,6 +1,8 @@
 module ADCs
+import JuMP: @constraint
 import ...Variables: variables, dwell_time, duration, effective_time, get_free_variable, VariableType
 import ...BuildingBlocks: BuildingBlock, apply_simple_constraint!, set_simple_constraints!
+import ...BuildSequences: global_model
 
 """
     ADC(nsamples; dwell_time=nothing, duration=nothing, time_to_center=duration/2)
@@ -27,7 +29,11 @@ function ADC(nsamples; dwell_time=nothing, time_to_center=nothing, kwargs...)
         get_free_variable(dwell_time),
         time_to_center isa VariableType ? time_to_center : nothing
     )
-    if !(time_to_center isa VariableType)
+    @constraint global_model() res.dwell_time >= 0
+    if time_to_center isa VariableType
+        @constraint global_model() time_to_center >= 0
+        @constraint global_model() time_to_center <= duration(res)
+    else
         apply_simple_constraint!(effective_time(res), time_to_center)
     end
     set_simple_constraints!(res, kwargs)