diff --git a/src/sequence_io/pulseq_io/parsers/adc.jl b/src/sequence_io/pulseq_io/parsers/adc.jl
index eebeab8a3ece132ecb174432fc5d76da09d72c9d..88bb58dfe8efe2b6ea4f009b264c440b4bc34a2d 100644
--- a/src/sequence_io/pulseq_io/parsers/adc.jl
+++ b/src/sequence_io/pulseq_io/parsers/adc.jl
@@ -19,7 +19,8 @@ end
 
 function gen_section(comp:: PulseqComponents, ::Val{:adc})
     res = PulseqSection{:adc}(String[])
-    for (i, adc) in comp.adc
+    for i in sort([keys(comp.adc)...])
+        adc = comp.adc[i]
         values = string.(Any[
             i,
             adc.num,
diff --git a/src/sequence_io/pulseq_io/parsers/gradients.jl b/src/sequence_io/pulseq_io/parsers/gradients.jl
index 67a1cc94ad2ddb31eb3f7b32153db6e2d6b36e5f..e8da19d22abd1e675ef312ae38753918fd6b0ac2 100644
--- a/src/sequence_io/pulseq_io/parsers/gradients.jl
+++ b/src/sequence_io/pulseq_io/parsers/gradients.jl
@@ -27,7 +27,8 @@ end
 
 function gen_section(comp:: PulseqComponents, ::Val{:gradients})
     res = PulseqSection{:gradients}(String[])
-    for (i, grad) in comp.grads
+    for i in sort([keys(comp.grads)...])
+        grad = comp.grads[i]
         if !(grad isa PulseqGradient)
             continue
         end
diff --git a/src/sequence_io/pulseq_io/parsers/rf.jl b/src/sequence_io/pulseq_io/parsers/rf.jl
index c864259ff3e875eea36d775be7fb2be6db088637..2b04c5863a573c098b82b74c7c77068a0dcb7d19 100644
--- a/src/sequence_io/pulseq_io/parsers/rf.jl
+++ b/src/sequence_io/pulseq_io/parsers/rf.jl
@@ -30,7 +30,8 @@ end
 
 function gen_section(comp:: PulseqComponents, ::Val{:rf})
     res = PulseqSection{:rf}(String[])
-    for (i, pulse) in comp.pulses
+    for i in sort([keys(comp.pulses)...])
+        pulse = comp.pulses[i]
         values = string.(Any[
             i,
             pulse.amplitude,
diff --git a/src/sequence_io/pulseq_io/parsers/shapes.jl b/src/sequence_io/pulseq_io/parsers/shapes.jl
index 1ab05975ca1e6f225b7ff352e4772cef3e48309b..ef0a30f79365855f2f143906a85909e1016a3fda 100644
--- a/src/sequence_io/pulseq_io/parsers/shapes.jl
+++ b/src/sequence_io/pulseq_io/parsers/shapes.jl
@@ -59,7 +59,8 @@ end
 
 function gen_section(comp:: PulseqComponents, ::Val{:shapes})
     res = PulseqSection{:shapes}(String[])
-    for (index, shape) in comp.shapes
+    for index in sort([keys(comp.shapes)...])
+        shape = comp.shapes[index]
         append!(res.content, [
             "",
             "shape_id $index",
diff --git a/src/sequence_io/pulseq_io/parsers/trapezoids.jl b/src/sequence_io/pulseq_io/parsers/trapezoids.jl
index 990d1b7c1e832bb538aceb3bf174421ecbc2a1bb..1b1bc3753c4717d0f5dbbd87299a2513e4c13fbc 100644
--- a/src/sequence_io/pulseq_io/parsers/trapezoids.jl
+++ b/src/sequence_io/pulseq_io/parsers/trapezoids.jl
@@ -19,7 +19,8 @@ end
 
 function gen_section(comp:: PulseqComponents, ::Val{:trap})
     res = PulseqSection{:trap}(String[])
-    for (i, grad) in comp.grads
+    for i in sort([keys(comp.grads)...])
+        grad = comp.grads[i]
         if !(grad isa PulseqTrapezoid)
             continue
         end