diff --git a/gstlal-calibration/bin/gstlal_compute_strain b/gstlal-calibration/bin/gstlal_compute_strain
index ef4023747e046ba1df0ff73275f2d4a56bb48bb5..2fb13d67e01ba5139573e539141a1eb7f9654c7d 100755
--- a/gstlal-calibration/bin/gstlal_compute_strain
+++ b/gstlal-calibration/bin/gstlal_compute_strain
@@ -2200,9 +2200,9 @@ if apply_fcc or apply_fs or apply_srcq:
 	# Now interleave the correction channels in tdep_zpk and feed them into lal_adaptivefirfilt to update the inverse sensing filter
 	tdep_zpk = calibration_parts.mkinterleave(pipeline, tdep_zpk, complex_data = True)
 	if minimize_adaptive_sensfilt:
-		adaptive_invsens_filter = calibration_parts.mkadaptivefirfilt(pipeline, tdep_zpk, update_samples = int(sensing_filter_update_time * compute_factors_sr), average_samples = int(sensing_filter_averaging_time * compute_factors_sr) + 1, num_zeros = variable_invsens_zeros, num_poles = 0, window_type = None, filter_sample_rate = hoft_sr, filter_timeshift = 1000000000 * sensing_filter_update_time, minimize_filter_length = True, name = "adaptive_invsens_filter")
+		adaptive_invsens_filter = calibration_parts.mkadaptivefirfilt(pipeline, tdep_zpk, update_samples = int(sensing_filter_update_time * compute_factors_sr), average_samples = int(sensing_filter_averaging_time * compute_factors_sr), num_zeros = variable_invsens_zeros, num_poles = 0, window_type = None, filter_sample_rate = hoft_sr, filter_timeshift = 1000000000 * sensing_filter_update_time, minimize_filter_length = True, name = "adaptive_invsens_filter")
 	else:
-		adaptive_invsens_filter = calibration_parts.mkadaptivefirfilt(pipeline, tdep_zpk, static_model = reschainfilt_model, static_filter = reschainfilt, static_poles = static_invsens_poles, update_samples = int(sensing_filter_update_time * compute_factors_sr), average_samples = int(sensing_filter_averaging_time * compute_factors_sr) + 1, num_zeros = variable_invsens_zeros, num_poles = 0, adaptive_filter_length = len(reschainfilt), frequency_resolution = invsens_freq_res, window_type = invsens_window_type, filter_sample_rate = hoft_sr, filter_timeshift = 1000000000 * sensing_filter_update_time, minimize_filter_length = False, name = "adaptive_invsens_filter")
+		adaptive_invsens_filter = calibration_parts.mkadaptivefirfilt(pipeline, tdep_zpk, static_model = reschainfilt_model, static_filter = reschainfilt, static_poles = static_invsens_poles, update_samples = int(sensing_filter_update_time * compute_factors_sr), average_samples = int(sensing_filter_averaging_time * compute_factors_sr), num_zeros = variable_invsens_zeros, num_poles = 0, adaptive_filter_length = len(reschainfilt), frequency_resolution = invsens_freq_res, window_type = invsens_window_type, filter_sample_rate = hoft_sr, filter_timeshift = 1000000000 * sensing_filter_update_time, minimize_filter_length = False, name = "adaptive_invsens_filter")
 
 #
 # CONTROL BRANCH
@@ -2862,7 +2862,7 @@ if compute_calib_statevector:
 	# FCC BITS BRANCH
 	#
 	if compute_fcc:
-		fccSmoothInRange = calibration_parts.compute_kappa_bits_only_real(pipeline, smooth_fcctee, fcc_default, fcc_var, median_smoothing_samples + int((sensing_filter_update_time + sensing_filter_averaging_time) * compute_factors_sr) + 1, factors_average_samples, status_out_smooth = pow(2,fcc_smooth_bitnum), starting_rate = compute_factors_sr, ending_rate = calibstate_sr)
+		fccSmoothInRange = calibration_parts.compute_kappa_bits_only_real(pipeline, smooth_fcctee, fcc_default, fcc_var, median_smoothing_samples + int((sensing_filter_update_time + sensing_filter_averaging_time) * compute_factors_sr), factors_average_samples, status_out_smooth = pow(2,fcc_smooth_bitnum), starting_rate = compute_factors_sr, ending_rate = calibstate_sr)
 
 	#
 	# FS BITS BRANCH
@@ -2870,7 +2870,7 @@ if compute_calib_statevector:
 
 	# We are actually checking the value fs^2, as that is more indicative of significant change.
 	if compute_fs:
-		fsSmoothInRange = calibration_parts.compute_kappa_bits_only_real(pipeline, smooth_fs_squared, fs_squared_default, fs_squared_var, median_smoothing_samples + int((sensing_filter_update_time + sensing_filter_averaging_time) * compute_factors_sr) + 1, factors_average_samples, status_out_smooth = pow(2,fs_smooth_bitnum), starting_rate = compute_factors_sr, ending_rate = calibstate_sr)
+		fsSmoothInRange = calibration_parts.compute_kappa_bits_only_real(pipeline, smooth_fs_squared, fs_squared_default, fs_squared_var, median_smoothing_samples + int((sensing_filter_update_time + sensing_filter_averaging_time) * compute_factors_sr), factors_average_samples, status_out_smooth = pow(2,fs_smooth_bitnum), starting_rate = compute_factors_sr, ending_rate = calibstate_sr)
 
 	#
 	# SRCQ BITS BRANCH
@@ -2878,7 +2878,7 @@ if compute_calib_statevector:
 
 	# We are actually checking the value fs / Q, as that is more indicative of significant change.
 	if compute_srcq:
-		srcQSmoothInRange = calibration_parts.compute_kappa_bits_only_real(pipeline, fs_over_Q, fs_over_Q_default, fs_squared_var / src_pcal_line_freq, median_smoothing_samples + int((sensing_filter_update_time + sensing_filter_averaging_time) * compute_factors_sr) + 1, factors_average_samples, status_out_smooth = pow(2,Qinv_smooth_bitnum), starting_rate = compute_factors_sr, ending_rate = calibstate_sr)
+		srcQSmoothInRange = calibration_parts.compute_kappa_bits_only_real(pipeline, fs_over_Q, fs_over_Q_default, fs_squared_var / src_pcal_line_freq, median_smoothing_samples + int((sensing_filter_update_time + sensing_filter_averaging_time) * compute_factors_sr), factors_average_samples, status_out_smooth = pow(2,Qinv_smooth_bitnum), starting_rate = compute_factors_sr, ending_rate = calibstate_sr)
 
 	#
 	# COHERENCE BITS BRANCH
diff --git a/gstlal-calibration/gst/lal/gstlal_adaptivefirfilt.c b/gstlal-calibration/gst/lal/gstlal_adaptivefirfilt.c
index 1b5b01615d5b58ab2ba7c15d6f93c565a99c4097..81e1d2e204a84f712d61c095debd146bcf4c65e0 100644
--- a/gstlal-calibration/gst/lal/gstlal_adaptivefirfilt.c
+++ b/gstlal-calibration/gst/lal/gstlal_adaptivefirfilt.c
@@ -1201,7 +1201,7 @@ static void gstlal_adaptivefirfilt_class_init(GSTLALAdaptiveFIRFiltClass *klass)
 		"average-samples",
 		"Average Samples",
 		"Number of input samples to average before producing the adaptive FIR filter",
-		0, G_MAXINT64, 320,
+		1, G_MAXINT64, 320,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT
 	);
 	properties[ARG_NUM_ZEROS] = g_param_spec_int(
diff --git a/gstlal-calibration/python/calibration_parts.py b/gstlal-calibration/python/calibration_parts.py
index 5f0d612ba1c9b8ad77b8ebc267474f2b4a6c3787..574f00918b37a0c4a2a1e1d9453669a9d3572e02 100644
--- a/gstlal-calibration/python/calibration_parts.py
+++ b/gstlal-calibration/python/calibration_parts.py
@@ -212,6 +212,11 @@ def mkadaptivefirfilt(pipeline, src, **properties):
 		else:
 			raise ValueError("Unknown window function %s" % win)
 		properties["window_type"] = win
+	if "average_samples" in properties:
+		navg = properties.pop("average_samples")
+		navg = navg if navg > 0 else 1
+		properties["average_samples"] = navg
+
 	return pipeparts.mkgeneric(pipeline, src, "lal_adaptivefirfilt", **properties)
 
 def mkpow(pipeline, src, **properties):
diff --git a/gstlal-calibration/tests/check_calibration/Makefile b/gstlal-calibration/tests/check_calibration/Makefile
index 818c4e4c54ae14120fd430d46472da782d864889..179d98a676cd376a6980cbef55701a8bb1dc3645 100644
--- a/gstlal-calibration/tests/check_calibration/Makefile
+++ b/gstlal-calibration/tests/check_calibration/Makefile
@@ -8,9 +8,9 @@ IFO = H
 # determines where to look for filters files (e.g., O1, O2, O3, ER10, ER13, ER14, PreER10, PreER13, PreER14)
 OBSRUN = O3
 
-START = $(shell echo 1238288418 | bc)
+START = $(shell echo 1269090018 | bc)
 # 1238288418
-END = $(shell echo 1238338818 | bc)
+END = $(shell echo 1269133218 | bc)
 # 1238338818
 SHMRUNTIME = 600
 # How much time does the calibration need to settle at the start and end?
@@ -27,10 +27,10 @@ FCC_CORR_CONFIGS = Filters/O3/GDSFilters/H1DCS_test_1256655618_v2_FCC_CORR.ini
 ALL_CORR_CONFIGS = Filters/O3/GDSFilters/H1DCS_test_1256655618_v2_ALL_CORR.ini
 FCCFS_CORR_CONFIGS = Filters/O2/GDSFilters/H1DCS_FccFsCorrections_Cleaning.ini
 NO_CORR_CONFIGS = Filters/O3/GDSFilters/H1DCS_test_1256655618_v2_NO_CORR.ini
-DCSEXACTKAPPASCONFIGS = Filters/O3/GDSFilters/H1DCS_test_1237831461_exactKappas.ini
-DCSAPPROXKAPPASCONFIGS = Filters/O3/GDSFilters/H1DCS_test_1237831461_approxKappas.ini
-# H1DCS_test_1237831461_exactKappas.ini
-# H1DCS_C01_1256655618_v2_test.ini
+DCSEXACTKAPPASCONFIGS = Filters/O3/GDSFilters/H1DCS_test_1256655618_v2_exactKappas.ini
+#Filters/O3/GDSFilters/H1DCS_test_1237831461_exactKappas.ini
+DCSAPPROXKAPPASCONFIGS = Filters/O3/GDSFilters/H1DCS_test_1256655618_v2_approxKappas.ini
+#Filters/O3/GDSFilters/H1DCS_test_1237831461_approxKappas.ini
 DCSLINESCONFIGS = ../../config_files/O2/H1/tests/H1DCS_AllCorrections_CleaningLines.ini
 DCSFCCCONFIGS = ../../config_files/O2/H1/tests/H1DCS_FreqIndepAndFccCorrections_Cleaning.ini
 GDSTESTCONFIGS = Filters/O3/GDSFilters/H1GDS_1239476409_testAllCorrections.ini