diff --git a/DynamicModel.cc b/DynamicModel.cc
index 35ec61742a104aade69563efebaf7dd5a464e81f..515304ba1e09718fd3918391459e69c3a91ee461 100644
--- a/DynamicModel.cc
+++ b/DynamicModel.cc
@@ -1160,10 +1160,9 @@ DynamicModel::writeDynamicCFile(const string &dynamic_basename) const
                     << "  g2 = NULL;" << endl
                     << " if (nlhs >= 3)" << endl
                     << "  {" << endl
-                    << "     /* Set the output pointer to the output matrix g2. */" << endl;
-  int g2_ncols = getDynJacobianColsNbr()*getDynJacobianColsNbr();
-  mDynamicModelFile << "     plhs[2] = mxCreateSparse(" << equations.size() << ", " << g2_ncols << ", "
-                    << 5*g2_ncols << ", mxREAL);" << endl
+                    << "     /* Set the output pointer to the output matrix g2. */" << endl
+                    << "     plhs[2] = mxCreateDoubleMatrix(" << equations.size() << ", " << getDynJacobianColsNbr()*getDynJacobianColsNbr()
+                    << ", mxREAL);" << endl
                     << "     /* Create a C pointer to a copy of the output matrix g1. */" << endl
                     << "     g2 = mxGetPr(plhs[2]);" << endl
                     << "  }" << endl