diff --git a/R/cmp.R b/R/cmp.R
index 96f679c038f262ec166d0111837ec54a85ec92ad..ad22f6c1b47c8720b464669c8fce5f67601ffd13 100644
--- a/R/cmp.R
+++ b/R/cmp.R
@@ -266,8 +266,9 @@ calc_mean_cmp <- function(lambda, nu, sumto, tol = 1e-5) {
     names(nu) <- NULL
     pars <- data.frame(lambda = lambda, nu = nu)
     ## Calcula o ymax usando mu + 5 (sqrt(sigma))
-    sigma <- lambda^(1/nu)/nu - (nu - 1)/(2 * nu^2)
-    ymax <- with(pars, ceiling(max(lambda + 5 * sqrt(sigma))))
+    approxmu <- lambda^(1/nu) - (nu - 1)/(2 * nu)
+    sigma <- (1/nu) * approxmu
+    ymax <- with(pars, ceiling(max(approxmu + 5 * sqrt(sigma))))
     ## Agora verifica se a prob(ymax) é de fato pequena, se não, soma 1.
     lambdamax <- max(pars$lambda)
     numin <- min(pars$nu)
@@ -317,9 +318,10 @@ calc_var_cmp <- function(lambda, nu, sumto, tol = 1e-5) {
     names(lambda) <- NULL
     names(nu) <- NULL
     pars <- data.frame(lambda = lambda, nu = nu)
-    # Calcula o ymax usando mu + 5 (sqrt(sigma))
-    sigma <- lambda^(1/nu)/nu - (nu - 1)/(2 * nu^2)
-    ymax <- with(pars, ceiling(max(lambda + 5 * sqrt(sigma))))
+    ## Calcula o ymax usando mu + 5 (sqrt(sigma))
+    approxmu <- lambda^(1/nu) - (nu - 1)/(2 * nu)
+    sigma <- (1/nu) * approxmu
+    ymax <- with(pars, ceiling(max(approxmu + 5 * sqrt(sigma))))
     # Agora verifica se a prob(ymax) é de fato pequena, se não, soma 1.
     lambdamax <- max(pars$lambda)
     numin <- min(pars$nu)