diff --git a/bilby/bilby_mcmc/proposals.py b/bilby/bilby_mcmc/proposals.py
index 4d1d33bdf1b2e6d92802fe34be4c86e2976dd8a5..99daa824fb8390e26446e73c8d4ff667bc65a564 100644
--- a/bilby/bilby_mcmc/proposals.py
+++ b/bilby/bilby_mcmc/proposals.py
@@ -313,6 +313,10 @@ class DifferentialEvolutionProposal(BaseProposal):
 class UniformProposal(BaseProposal):
     """A proposal using uniform draws from the prior support
 
+    Note: for priors with infinite support, this proposal will not propose a
+    point, leading to inefficient sampling. You may wish to omit this proposal
+    if you have priors with infinite support.
+
     Parameters
     ----------
     priors: bilby.core.prior.PriorDict
@@ -330,9 +334,14 @@ class UniformProposal(BaseProposal):
     def propose(self, chain):
         sample = chain.current_sample
         for key in self.parameters:
-            sample[key] = np.random.uniform(
-                self.prior_minimum_dict[key], self.prior_maximum_dict[key]
-            )
+            width = self.prior_width_dict[key]
+            if np.isinf(width) is False:
+                sample[key] = np.random.uniform(
+                    self.prior_minimum_dict[key], self.prior_maximum_dict[key]
+                )
+            else:
+                # Unable to generate a uniform sample on infinite support
+                pass
         log_factor = 0
         return sample, log_factor
 
diff --git a/test/bilby_mcmc/test_proposals.py b/test/bilby_mcmc/test_proposals.py
index 08f37b1cda2a82adff268af3b0e9212c6779ae5c..3bb70b168569edf2258c8f6b42674f53f8175a6f 100644
--- a/test/bilby_mcmc/test_proposals.py
+++ b/test/bilby_mcmc/test_proposals.py
@@ -30,6 +30,8 @@ class TestBaseProposals(unittest.TestCase):
             for i in range(ndim)
         })
         priors["fixedA"] = bilby.core.prior.DeltaFunction(1)
+        priors["infinite_support"] = bilby.core.prior.Normal(0, 1)
+        priors["half_infinite_support"] = bilby.core.prior.HalfNormal(1)
         return priors
 
     def create_random_sample(self, ndim=2):
@@ -37,6 +39,8 @@ class TestBaseProposals(unittest.TestCase):
         p[LOGLKEY] = np.random.normal(0, 1)
         p[LOGPKEY] = -1
         p["fixedA"] = 1
+        p["infinite_support"] = np.random.normal(0, 1)
+        p["half_infinite_support"] = np.abs(np.random.normal(0, 1))
         return Sample(p)
 
     def create_chain(self, n=1000, ndim=2):