diff --git a/bilby/core/prior.py b/bilby/core/prior.py
index b4883a1a1047e2824853ac6e9ab8577f1946d420..434102133533e51954107b58c768e9642f1d77e9 100644
--- a/bilby/core/prior.py
+++ b/bilby/core/prior.py
@@ -3534,7 +3534,8 @@ def conditional_prior_factory(prior_class):
             return super(ConditionalPrior, self).prob(val)
 
         def ln_prob(self, val, **required_variables):
-            return np.log(self.prob(val, **required_variables))
+            self.update_conditions(**required_variables)
+            return super(ConditionalPrior, self).ln_prob(val)
 
         def update_conditions(self, **required_variables):
             """
diff --git a/test/prior_test.py b/test/prior_test.py
index 80f18d410c8aa7956f784708fd882e394b8c88f4..6d7b0ecae1e42494c104dcb34205435918969518 100644
--- a/test/prior_test.py
+++ b/test/prior_test.py
@@ -1022,8 +1022,10 @@ class TestConditionalPrior(unittest.TestCase):
         with mock.patch.object(self.prior, 'update_conditions') as m:
             self.prior.ln_prob(1, test_parameter_1=self.test_variable_1,
                                test_parameter_2=self.test_variable_2)
-            m.assert_called_with(test_parameter_1=self.test_variable_1,
-                                 test_parameter_2=self.test_variable_2)
+            calls = [mock.call(test_parameter_1=self.test_variable_1,
+                               test_parameter_2=self.test_variable_2),
+                     mock.call()]
+            m.assert_has_calls(calls)
 
     def test_reset_to_reference_parameters(self):
         self.prior.minimum = 10