diff --git a/src/sequence_io/pulseq_io/parsers/shapes.jl b/src/sequence_io/pulseq_io/parsers/shapes.jl
index 6d523df8ec9f2ba461a7905186081f30db7a32aa..58c2859bbd19efea12bb333b437bed5c0a21a3bd 100644
--- a/src/sequence_io/pulseq_io/parsers/shapes.jl
+++ b/src/sequence_io/pulseq_io/parsers/shapes.jl
@@ -46,9 +46,14 @@ function uncompress(compressed::CompressedPulseqShape)
             push!(amplitudes, sample)
             if sample == prev_sample
                 repeating = true
+            else
+                prev_sample = sample
             end
         end
     end
+    if length(amplitudes) != compressed.num
+        error("Uncompressing shape did not produce correct number of elements.")
+    end
     return PulseqShape(amplitudes)
 end