diff --git a/km3buu/geometry.py b/km3buu/geometry.py
index 34149557470422cc51610b4b5e9fe409d49b4e4f..fa2fe448af998e35f95b097b6af778c1051af284 100644
--- a/km3buu/geometry.py
+++ b/km3buu/geometry.py
@@ -128,7 +128,7 @@ class SphericalVolume(DetectorVolume):
         return 4 / 3 * np.pi * np.power(self._radius, 3)
 
     def random_pos(self):
-        r = np.power(self._radius, 1 / 3)
+        r = self._radius * np.power(np.random.random(), 1 / 3)
         phi = np.random.uniform(0, np.pi)
         cosTheta = np.random.uniform(-1, 1)
         pos_x = r * np.cos(phi) * np.sqrt(1 - np.power(cosTheta, 2))
diff --git a/km3buu/tests/test_geometry.py b/km3buu/tests/test_geometry.py
index 9894c4732948623ea94bd059b871d766902f0299..292cac2dd3b709a8279c02976db9148471de7b7a 100644
--- a/km3buu/tests/test_geometry.py
+++ b/km3buu/tests/test_geometry.py
@@ -13,6 +13,7 @@ __status__ = "Development"
 import unittest
 
 from km3buu.geometry import *
+import numpy as np
 
 
 class TestGeneralGeometry(unittest.TestCase):
@@ -38,6 +39,8 @@ class TestSphere(unittest.TestCase):
             assert pos[0] < 22.0
             assert pos[1] < 22.0
             assert pos[2] < 22.0
+            radius = np.sqrt(np.sum(np.power((np.array(pos) - 2), 2)))
+            assert radius <= 20
 
 
 class TestCan(unittest.TestCase):