diff --git a/mex/sources/sobol/qmc_sequence.cc b/mex/sources/sobol/qmc_sequence.cc
index 96c64c37d8ca9ef3af117b0d3329e8b15950714b..96b15a9ff25c4db7dd3e8393c3b5790aeb58c791 100644
--- a/mex/sources/sobol/qmc_sequence.cc
+++ b/mex/sources/sobol/qmc_sequence.cc
@@ -153,7 +153,7 @@ void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
       cholcov = (double *) mxCalloc(dimension*dimension,sizeof(double));
       double *tmp;
       tmp = (double *) mxCalloc(dimension*dimension,sizeof(double));
-      memcpy(tmp,mxGetPr(prhs[4]),dimension*2*sizeof(double));
+      memcpy(tmp,mxGetPr(prhs[4]),dimension*dimension*sizeof(double));
       cholcov = &tmp[0];
       identity_covariance_matrix = 0;
     }
@@ -163,7 +163,7 @@ void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
     {
       double *tmp;
       tmp = (double *) mxCalloc(1,sizeof(double));
-      memcpy(tmp,mxGetPr(prhs[4]),dimension*2*sizeof(double));
+      memcpy(tmp,mxGetPr(prhs[4]),sizeof(double));
       radius = tmp[0];
       unit_radius = 0;
     }