--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -35,7 +35,7 @@
 # file at some point.
 #
 set(CODEC2_VERSION_MAJOR 0)
-set(CODEC2_VERSION_MINOR 5)
+set(CODEC2_VERSION_MINOR 4)
 # Set to patch level if needed, otherwise leave FALSE.
 set(CODEC2_VERSION_PATCH 1)
 set(CODEC2_VERSION "${CODEC2_VERSION_MAJOR}.${CODEC2_VERSION_MINOR}")
--- a/src/codec2_fm.h
+++ b/src/codec2_fm.h
@@ -38,9 +38,9 @@
     COMP  *rx_bb;
     COMP   rx_bb_filt_prev;
     float *rx_dem_mem;
-    float  tx_phase;
     int    nsam;
     COMP   lo_phase;
+    float  tx_phase;
 };
 
 struct FM *fm_create(int nsam);
--- a/src/freedv_api_internal.h
+++ b/src/freedv_api_internal.h
@@ -64,13 +64,9 @@
     struct MODEM_STATS   stats;
     struct COHPSK       *cohpsk;
 
-    struct quisk_cfFilter * ptFilter7500to8000;     // Filters to change to/from 7500 and 8000 sps
-    struct quisk_cfFilter * ptFilter8000to7500;
-
     int                  n_speech_samples;
     int                  n_nom_modem_samples;    // size of tx and most rx modem sample buffers
     int                  n_max_modem_samples;    // make your rx modem sample buffers this big
-    int                  n_nat_modem_samples;    // tx modem sample block length as used by the modem before interpolation to output
 
     int                  modem_sample_rate;      // ATM caller is responsible for meeting this (TBC)
     int                  clip;                   // non-zero for cohpsk modem output clipping for low PAPR
@@ -119,6 +115,11 @@
 
     void                *callback_state;
 
+    /* New in version 0.5 */
+    struct quisk_cfFilter * ptFilter7500to8000;     // Filters to change to/from 7500 and 8000 sps
+    struct quisk_cfFilter * ptFilter8000to7500;
+    int                  n_nat_modem_samples;    // tx modem sample block length as used by the modem before interpolation to output
+
 };
 
 // FIR filter suitable for changing rates 7500 to/from 8000
