diff --git a/bilby/gw/source.py b/bilby/gw/source.py
index b69972fbcca8ff972a44dfe0637604e060c75e72..8b52ceeae01c034aa549e958aae2dacbb9db53f1 100644
--- a/bilby/gw/source.py
+++ b/bilby/gw/source.py
@@ -383,7 +383,10 @@ def _base_lal_cbc_fd_waveform(
     h_cross = np.zeros_like(frequency_array, dtype=np.complex)
 
     if len(hplus.data.data) > len(frequency_array):
-        raise ValueError("Waveform longer than frequency array")
+        # lalsim waveform arrays can be padded with zeros up to
+        # a power of two length which can be greater than our length.
+        h_plus = hplus.data.data[:len(h_plus)]
+        h_cross = hcross.data.data[:len(h_cross)]
 
     h_plus[:len(hplus.data.data)] = hplus.data.data
     h_cross[:len(hcross.data.data)] = hcross.data.data