diff --git a/gstlal-calibration/bin/gstlal_compute_strain b/gstlal-calibration/bin/gstlal_compute_strain
index 8f8948164402909c4c6616292e36a4af55470a1b..241fdb786093e716704daca418ae395c370dfcfd 100755
--- a/gstlal-calibration/bin/gstlal_compute_strain
+++ b/gstlal-calibration/bin/gstlal_compute_strain
@@ -1025,8 +1025,8 @@ if not options.no_kappac or not options.no_fcc or not options.no_kappapu or not
 			smooth_XiR, smooth_XiI = calibration_parts.split_into_real(pipeline, smooth_Xi)
 			smooth_XiR_nogate, smooth_XiI_nogate = calibration_parts.split_into_real(pipeline, smooth_Xi_nogate)
 
-		smooth_sqrtXiR = pipeparts.mkpow(pipeline, smooth_XiR, exponent = 0.5)
-		smooth_sqrtXiR_nogate = pipeparts.mkpow(pipeline, smooth_XiR_nogate, exponent = 0.5)
+		smooth_sqrtXiR = calibration_parts.mkpow(pipeline, smooth_XiR, exponent = 0.5)
+		smooth_sqrtXiR_nogate = calibration_parts.mkpow(pipeline, smooth_XiR_nogate, exponent = 0.5)
 
 		if not options.no_fs and not options.no_srcQ:
 			smooth_sqrtXiR = pipeparts.mktee(pipeline, smooth_sqrtXiR)
@@ -1042,8 +1042,8 @@ if not options.no_kappac or not options.no_fcc or not options.no_kappapu or not
 
 		# compute SRC Q_inv
 		if not options.no_srcQ:
-			smooth_sqrtXiR_inv = pipeparts.mkpow(pipeline, smooth_sqrtXiR, exponent = -1.0)
-			smooth_sqrtXiR_inv_nogate = pipeparts.mkpow(pipeline, smooth_sqrtXiR_nogate, exponent = -1.0)
+			smooth_sqrtXiR_inv = calibration_parts.mkpow(pipeline, smooth_sqrtXiR, exponent = -1.0)
+			smooth_sqrtXiR_inv_nogate = calibration_parts.mkpow(pipeline, smooth_sqrtXiR_nogate, exponent = -1.0)
 			smooth_srcQ_inv = calibration_parts.mkmultiplier(pipeline, calibration_parts.list_srcs(pipeline, smooth_sqrtXiR_inv, pipeparts.mkaudioamplify(pipeline, smooth_XiI, -1.0)))
 			smooth_srcQ_inv_nogate = calibration_parts.mkmultiplier(pipeline, calibration_parts.list_srcs(pipeline, smooth_sqrtXiR_inv_nogate, pipeparts.mkaudioamplify(pipeline, smooth_XiI_nogate, -1.0)))
 
@@ -1084,7 +1084,7 @@ if options.update_fcc or options.update_fs or options.update_srcQ:
 		tdep_zpk.append(complex_fcc)
 
 		# This will be added into tdep_zpk at the end, as required by lal_adaptivefirfilt
-		variable_invsens_gain = pipeparts.mkaudioamplify(pipeline, pipeparts.mkgeneric(pipeline, smooth_fcctee, "cpow", exponent = -1.0), fcc_default)
+		variable_invsens_gain = pipeparts.mkaudioamplify(pipeline, calibration_parts.mkpow(pipeline, smooth_fcctee, exponent = -1.0), fcc_default)
 
 	# There are two zeros that depend on fs and Q, both of which depend on both fs and Q
 	if options.update_fs or options.update_srcQ:
@@ -1094,8 +1094,8 @@ if options.update_fcc or options.update_fs or options.update_srcQ:
 
 	if options.update_fs and options.update_srcQ:
 		# The variable zeros depend on the computed values of fs and Q
-		Q_inv_squared = pipeparts.mkgeneric(pipeline, smooth_srcQ_inv, "cpow", exponent = 2.0)
-		sqrt_Q_inv_squared_plus4 = pipeparts.mkgeneric(pipeline, pipeparts.mkgeneric(pipeline, Q_inv_squared, "lal_add_constant", value = 4.0), "cpow", exponent = 0.5)
+		Q_inv_squared = calibration_parts.mkpow(pipeline, smooth_srcQ_inv, exponent = 2.0)
+		sqrt_Q_inv_squared_plus4 = calibration_parts.mkpow(pipeline, pipeparts.mkgeneric(pipeline, Q_inv_squared, "lal_add_constant", value = 4.0), exponent = 0.5)
 		sqrt_Q_inv_squared_plus4 = pipeparts.mktee(pipeline, sqrt_Q_inv_squared_plus4)
 
 		SRC_zero1 = calibration_parts.mkadder(pipeline, calibration_parts.list_srcs(pipeline, smooth_srcQ_inv, sqrt_Q_inv_squared_plus4))
@@ -1125,8 +1125,8 @@ if options.update_fcc or options.update_fs or options.update_srcQ:
 
 	elif options.update_srcQ:
 		# The variable zeros depend on the model value of fs and the computed value of Q
-		Q_inv_squared = pipeparts.mkgeneric(pipeline, smooth_srcQ_inv, "cpow", exponent = 2.0)
-		sqrt_Q_inv_squared_plus4 = pipeparts.mkgeneric(pipeline, pipeparts.mkgeneric(pipeline, Q_inv_squared, "lal_add_constant", value = 4.0), "cpow", exponent = 0.5)
+		Q_inv_squared = calibration_parts.mkpow(pipeline, smooth_srcQ_inv, exponent = 2.0)
+		sqrt_Q_inv_squared_plus4 = calibration_parts.mkpow(pipeline, pipeparts.mkgeneric(pipeline, Q_inv_squared, "lal_add_constant", value = 4.0), exponent = 0.5)
 		sqrt_Q_inv_squared_plus4 = pipeparts.mktee(pipeline, sqrt_Q_inv_squared_plus4)
 
 		SRC_zero1 = calibration_parts.mkadder(pipeline, calibration_parts.list_srcs(pipeline, smooth_srcQ_inv, sqrt_Q_inv_squared_plus4))
@@ -1141,7 +1141,7 @@ if options.update_fcc or options.update_fs or options.update_srcQ:
 
 	if options.apply_kappac:
 		# We divide the gain by kappa_c
-		kappac_inv = pipeparts.mkgeneric(pipeline, smooth_kctee, "cpow", exponent = -1.0)
+		kappac_inv = calibration_parts.mkpow(pipeline, smooth_kctee, exponent = -1.0)
 		if options.update_fcc:
 			variable_invsens_gain = calibration_parts.mkmultiplier(pipeline, calibration_parts.list_srcs(pipeline, variable_invsens_gain, kappac_inv))
 		else:
@@ -1337,7 +1337,7 @@ res_filter_latency += float(reschaindelay)/hoftsr
 # Apply \kappa_c if we haven't already
 if options.apply_kappac and not (options.update_fcc or options.update_fs or options.update_srcQ):
 	kc_modify_res = calibration_parts.mkresample(pipeline, smooth_kctee, 3, False, hoft_caps)
-	res = calibration_parts.mkmultiplier(pipeline, calibration_parts.list_srcs(pipeline, res, pipeparts.mkgeneric(pipeline, kc_modify_res, "cpow", exponent = -1.0)))
+	res = calibration_parts.mkmultiplier(pipeline, calibration_parts.list_srcs(pipeline, res, calibration_parts.mkpow(pipeline, kc_modify_res, exponent = -1.0)))
 
 if options.dewhitening:
 	res = pipeparts.mkfirbank(pipeline, res, latency = int(resdewhitendelay), fir_matrix = [resdewhiten[::-1]], time_domain = td)
diff --git a/gstlal-calibration/python/calibration_parts.py b/gstlal-calibration/python/calibration_parts.py
index c350a02bf38422a6face845730ac78d8b12943ce..bf79dab28d871383b71384a401aa48667a782ef4 100644
--- a/gstlal-calibration/python/calibration_parts.py
+++ b/gstlal-calibration/python/calibration_parts.py
@@ -72,6 +72,9 @@ def mkcomplexfirbank2(pipeline, src, latency = None, fir_matrix = None, time_dom
 	properties = dict((name, value) for name, value in zip(("latency", "fir_matrix", "time_domain", "block_stride"), (latency, fir_matrix, time_domain, block_stride)) if value is not None)
 	return pipeparts.mkgeneric(pipeline, src, "lal_complexfirbank2", **properties)
 
+def mkpow(pipeline, src, **properties):
+	return pipeparts.mkgeneric(pipeline, src, "cpow", **properties)
+
 def mkmultiplier(pipeline, srcs, sync = True, queue_length = 0):
 	elem = pipeparts.mkgeneric(pipeline, None, "lal_adder", sync=sync, mix_mode="product")
 	if srcs is not None:
@@ -377,7 +380,7 @@ def compute_rms(pipeline, head, rate, average_time, f_min = None, f_max = None,
 		head = lowpass(pipeline, head, fcut = f_max, filter_latency = filter_latency, td = td)
 
 	# Square it
-	head = pipeparts.mkpow(pipeline, head, exponent = 2.0)
+	head = mkpow(pipeline, head, exponent = 2.0)
 
 	# Downsample again to save computational cost
 	head = mkresample(pipeline, head, 3, filter_latency == 0.0, rate_out)
@@ -531,7 +534,7 @@ def complex_audioamplify(pipeline, chan, WR, WI):
 def complex_inverse(pipeline, head):
 	# Invert a complex number (1/z)
 
-	head = pipeparts.mkgeneric(pipeline, head, "cpow", exponent = -1)
+	head = mkpow(pipeline, head, exponent = -1)
 
 	return head
 
@@ -686,8 +689,8 @@ def compute_kappac(pipeline, SR, SI):
 	#
 
 	SR = pipeparts.mktee(pipeline, SR)
-	S2 = mkadder(pipeline, list_srcs(pipeline, pipeparts.mkpow(pipeline, SR, exponent=2.0), pipeparts.mkpow(pipeline, SI, exponent=2.0)))
-	kc = mkmultiplier(pipeline, list_srcs(pipeline, S2, pipeparts.mkpow(pipeline, SR, exponent=-1.0)))
+	S2 = mkadder(pipeline, list_srcs(pipeline, mkpow(pipeline, SR, exponent=2.0), mkpow(pipeline, SI, exponent=2.0)))
+	kc = mkmultiplier(pipeline, list_srcs(pipeline, S2, mkpow(pipeline, SR, exponent=-1.0)))
 	return kc
 
 def compute_fcc(pipeline, SR, SI, fpcal2):
@@ -696,7 +699,7 @@ def compute_fcc(pipeline, SR, SI, fpcal2):
 	# f_cc = - (Re[S]/Im[S]) * fpcal2
 	#
 
-	fcc = mkmultiplier(pipeline, list_srcs(pipeline, pipeparts.mkaudioamplify(pipeline, SR, -1.0*fpcal2), pipeparts.mkpow(pipeline, SI, exponent=-1.0)))
+	fcc = mkmultiplier(pipeline, list_srcs(pipeline, pipeparts.mkaudioamplify(pipeline, SR, -1.0*fpcal2), mkpow(pipeline, SI, exponent=-1.0)))
 	return fcc
 
 def compute_Xi_from_filters_file(pipeline, pcalfpcal4, darmfpcal4, fpcal4, EP11_real, EP11_imag, EP12_real, EP12_imag, EP13_real, EP13_imag, EP14_real, EP14_imag, ktst, kpu, kc, fcc):
@@ -711,7 +714,7 @@ def compute_Xi_from_filters_file(pipeline, pcalfpcal4, darmfpcal4, fpcal4, EP11_
 	minusAD = complex_audioamplify(pipeline, A, -1.0 * EP12_real, -1.0 * EP12_imag)
 	pcal_over_derr = complex_division(pipeline, pcalfpcal4, darmfpcal4)
 	pcal_over_derr_res = mkadder(pipeline, list_srcs(pipeline, pcal_over_derr, minusAD))
-	fpcal4_over_fcc = pipeparts.mkaudioamplify(pipeline, pipeparts.mkpow(pipeline, fcc, exponent = -1.0), fpcal4)
+	fpcal4_over_fcc = pipeparts.mkaudioamplify(pipeline, mkpow(pipeline, fcc, exponent = -1.0), fpcal4)
 	i_fpcal4_over_fcc = pipeparts.mktogglecomplex(pipeline, pipeparts.mkmatrixmixer(pipeline, fpcal4_over_fcc, matrix = [[0, 1]]))
 	i_fpcal4_over_fcc_plus_one = pipeparts.mkgeneric(pipeline, i_fpcal4_over_fcc, "lal_add_constant", value = 1.0)
 	i_fpcal4_over_fcc_plus_one_inv = complex_inverse(pipeline, i_fpcal4_over_fcc_plus_one)
@@ -734,7 +737,7 @@ def compute_Xi(pipeline, pcalfpcal4, darmfpcal4, fpcal4, EP11, EP12, EP13, EP14,
 	minusAD = mkmultiplier(pipeline, list_srcs(pipeline, complex_audioamplify(pipeline, EP12, -1.0, 0.0), A))
 	pcal_over_derr = complex_division(pipeline, pcalfpcal4, darmfpcal4)
 	pcal_over_derr_res = mkadder(pipeline, list_srcs(pipeline, pcal_over_derr, minusAD))
-	fpcal4_over_fcc = pipeparts.mkaudioamplify(pipeline, pipeparts.mkpow(pipeline, fcc, exponent = -1.0), fpcal4)
+	fpcal4_over_fcc = pipeparts.mkaudioamplify(pipeline, mkpow(pipeline, fcc, exponent = -1.0), fpcal4)
 	i_fpcal4_over_fcc = pipeparts.mktogglecomplex(pipeline, pipeparts.mkmatrixmixer(pipeline, fpcal4_over_fcc, matrix = [[0, 1]]))
 	i_fpcal4_over_fcc_plus_one = pipeparts.mkgeneric(pipeline, i_fpcal4_over_fcc, "lal_add_constant", value = 1.0)
 	i_fpcal4_over_fcc_plus_one_inv = complex_inverse(pipeline, i_fpcal4_over_fcc_plus_one)