diff --git a/extreme_estimator/margin_fits/gev/gev_params.py b/extreme_estimator/margin_fits/gev/gev_params.py
index 88f48c55b9a738513a2f2c3181da15ec63b88912..769df9fdbef859cf5f3fa552dfa30d01ef335195 100644
--- a/extreme_estimator/margin_fits/gev/gev_params.py
+++ b/extreme_estimator/margin_fits/gev/gev_params.py
@@ -70,14 +70,18 @@ class GevParams(ExtremeParams):
 
     @property
     def mean(self):
-        if self.shape >= 1:
+        if self.has_undefined_parameters:
+            return np.nan
+        elif self.shape >= 1:
             return np.inf
         else:
             return self.location + self.scale * (self.g(k=1) - 1) / self.shape
 
     @property
     def variance(self):
-        if self.shape >= 0.5:
+        if self.has_undefined_parameters:
+            return np.nan
+        elif self.shape >= 0.5:
             return np.inf
         else:
             return ((self.scale / self.shape) ** 2) * (self.g(k=2) - self.g(k=1) ** 2)
diff --git a/test/test_extreme_estimator/test_margin_fits/test_gev/test_gev_params.py b/test/test_extreme_estimator/test_margin_fits/test_gev/test_gev_params.py
index 39d3da709d0e2ab155cdaf7f21ab601e5094bc76..0b19d97afc17cd34e1a00bf3ef2dc75539e8b059 100644
--- a/test/test_extreme_estimator/test_margin_fits/test_gev/test_gev_params.py
+++ b/test/test_extreme_estimator/test_margin_fits/test_gev/test_gev_params.py
@@ -20,6 +20,19 @@ class TestGevParams(unittest.TestCase):
             q = gev_params.quantile(p)
             self.assertTrue(np.isnan(q))
 
+    def test_has_undefined_parameter(self):
+        gev_params = GevParams(loc=1.0, shape=1.0, scale=-1.0)
+        self.assertTrue(gev_params.has_undefined_parameters)
+        for k, v in gev_params.indicator_name_to_value.items():
+            self.assertTrue(np.isnan(v), msg="{} is not equal to np.nan".format(k))
+
+    def test_limit_cases(self):
+        gev_params = GevParams(loc=1.0, shape=1.0, scale=1.0)
+        self.assertEqual(gev_params.mean, np.inf)
+        gev_params = GevParams(loc=1.0, shape=0.5, scale=1.0)
+        self.assertEqual(gev_params.variance, np.inf)
+        self.assertEqual(gev_params.std, np.inf)
+
 
 if __name__ == '__main__':
     unittest.main()