diff --git a/tupak/gw/conversion.py b/tupak/gw/conversion.py
index bba8d457376947905bfdd6da97ccdf0b31ec5f6c..f08d3d0f59d185340bb0f2808ec90737a8a53a3d 100644
--- a/tupak/gw/conversion.py
+++ b/tupak/gw/conversion.py
@@ -21,21 +21,23 @@ def redshift_to_comoving_distance(redshift):
     return Planck15.comoving_distance(redshift).value
 
 
+@np.vectorize
 def luminosity_distance_to_redshift(distance):
     return z_at_value(Planck15.luminosity_distance, distance * u.Mpc)
 
 
+@np.vectorize
 def comoving_distance_to_redshift(distance):
     return z_at_value(Planck15.comoving_distance, distance * u.Mpc)
 
 
 def comoving_distance_to_luminosity_distance(distance):
-    redshift = z_at_value(Planck15.comoving_distance, distance * u.Mpc)
+    redshift = comoving_distance_to_redshift(distance)
     return redshift_to_luminosity_distance(redshift)
 
 
 def luminosity_distance_to_comoving_distance(distance):
-    redshift = z_at_value(Planck15.luminosity_distance, distance * u.Mpc)
+    redshift = luminosity_distance_to_redshift(distance)
     return redshift_to_comoving_distance(redshift)
 
 
@@ -426,11 +428,7 @@ def generate_non_standard_parameters(sample):
     output_sample['cos_tilt_2'] = np.cos(output_sample['tilt_2'])
     output_sample['cos_iota'] = np.cos(output_sample['iota'])
 
-    try:
-        output_sample['redshift'] = luminosity_distance_to_redshift(sample['luminosity_distance'])
-    except u.core.UnitsError:
-        output_sample['redshift'] = [luminosity_distance_to_redshift(distance)
-                                     for distance in sample['luminosity_distance']]
+    output_sample['redshift'] = luminosity_distance_to_redshift(sample['luminosity_distance'])
     return output_sample