diff --git a/tests/test_image_advanced.py b/tests/test_image_advanced.py
index 1f1aed8a2ba827836314f61709e3a0316e41616f..99437f6605cb370e097ca409b40c4af551a4ce0f 100644
--- a/tests/test_image_advanced.py
+++ b/tests/test_image_advanced.py
@@ -321,3 +321,26 @@ def _test_image_calcRange(threaded):
     if threaded:
         img.getImageWrapper().getTaskThread().waitUntilIdle()
     assert img.dataRange == (0, 1)
+
+
+# sanity check - make sure data is not loaded
+# when loadData is False (fsl/fslpy#374)
+def test_Image_loadData():
+    with tests.testdir() as testdir:
+        filename = 'image.nii.gz'
+
+        # Data range grows with volume
+        data  = np.zeros((50, 50, 50, 50))
+        for vol in range(data.shape[-1]):
+            data[..., vol] = vol
+
+        fslimage.Image(data).save(filename)
+
+        img = fslimage.Image(filename, loadData=False)
+        assert not img.getImageWrapper().dataIsLoaded
+
+        img = fslimage.Image(filename, loadData=False, calcRange=False)
+        assert not img.getImageWrapper().dataIsLoaded
+
+        img = fslimage.Image(filename, loadData=False, calcRange=True)
+        assert not img.getImageWrapper().dataIsLoaded