diff --git a/R/varExp.R b/R/varExp.R
index 61c14032626a13400bac1923f8c4e6511adaed32..e5089c7b21f2dfd57f8268856ebc4553915942e8 100644
--- a/R/varExp.R
+++ b/R/varExp.R
@@ -163,7 +163,7 @@ calculateVarExp <- function(std_bG, std_bI, matcor, varY, N, type) {
         stop("type must be in c(\"G\", \"I\", \"J\")", call. = FALSE)
     }
     q <- qr(matcor)$rank
-    inv <- ginv(matcor, tol = 0.1)
+    inv <- ginv(matcor, tol = 0.0001)
     return((N * (crossprod(t(crossprod(std_bG, inv)), std_bG) + 
                      crossprod(t(crossprod(std_bI, inv)), std_bI)) -
                 q) / ((N - q) * varY))