diff --git a/src/sequence_io/pulseq.jl b/src/sequence_io/pulseq.jl
index 5f84e23d561ebb6776ce5496f36c395a5cf5633c..c0f28e34c2eb56a38a22dfe5afe22c3a547439bb 100644
--- a/src/sequence_io/pulseq.jl
+++ b/src/sequence_io/pulseq.jl
@@ -177,12 +177,13 @@ function PulseqBlock(block::BaseBuildingBlock; BlockDurationRaster, AdcRasterTim
     times = [t for (t, _) in waveform(block)]
     for dim in 1:3
         amplitudes = [g[dim] for (_, g) in waveform(block)]
-        if iszero(maximum(abs.(amplitudes); init=0.))
+        max_ampl = maximum(abs.(amplitudes); init=0.)
+        if iszero(max_ampl)
             push!(grads, nothing)
         else
             push!(grads, PulseqGradient(
-                maximum(amplitudes) * 1e3,
-                PulseqShape(amplitudes ./ maximum(amplitudes)),
+                max_ampl * 1e3,
+                PulseqShape(amplitudes ./ max_ampl),
                 PulseqShape(times .* 1e-3),
                 0.,
             ))
diff --git a/src/sequence_io/pulseq_io/parsers/shapes.jl b/src/sequence_io/pulseq_io/parsers/shapes.jl
index 1a1298b28296372ed67a8c8a5b26e8232ed539a0..3a062f7f6251e7b979d3fc84c68ad35afcbcc731 100644
--- a/src/sequence_io/pulseq_io/parsers/shapes.jl
+++ b/src/sequence_io/pulseq_io/parsers/shapes.jl
@@ -94,6 +94,7 @@ function gen_section(comp:: PulseqComponents, ::Val{:shapes})
     res = PulseqSection{:shapes}(String[])
     for index in sort([keys(comp.shapes)...])
         shape = compress(comp.shapes[index])
+        @assert all(isfinite.(shape.samples))
         append!(res.content, [
             "",
             "shape_id $index",