diff --git a/src/include/sph_subs.h b/src/include/sph_subs.h
index 8d06ba949feedaf460bc0c15eb765c8f4a88e712..484472df369d3419d1873b9867c5975095fd8527 100644
--- a/src/include/sph_subs.h
+++ b/src/include/sph_subs.h
@@ -1353,18 +1353,18 @@ void wmasp(
 void dme(
 		int li, int i, int npnt, int npntts, double vk, double exdc, double exri,
 		C1 *c1, C2 *c2, int &jer, int &lcalc, std::complex<double> &arg) {
-	double *rfj = new double[42];
-	double *rfn = new double[42];
-	std::complex<double> cfj[42], fbi[42], fb[42], fn[42];
-	std::complex<double> rmf[40], drmf[40], ref[40], dref[40];
+	const int lipo = li + 1;
+	const int lipt = li + 2;
+	double *rfj = new double[lipt];
+	double *rfn = new double[lipt];
+	std::complex<double> cfj[lipt], fbi[lipt], fb[lipt], fn[lipt];
+	std::complex<double> rmf[li], drmf[li], ref[li], dref[li];
 	std::complex<double> dfbi, dfb, dfn, ccna, ccnb, ccnc, ccnd;
 	std::complex<double> y1, dy1, y2, dy2, arin, cri, uim;
 	jer = 0;
 	uim = std::complex<double>(0.0, 1.0);
 	int nstp = npnt - 1;
 	int nstpts = npntts - 1;
-	int lipo = li + 1;
-	int lipt = li + 2;
 	double sz = vk * c1->ros[i - 1];
 	c2->vsz[i - 1] = sz;
 	double vkr1 = vk * c1->rc[i - 1][0];
@@ -1429,6 +1429,7 @@ void dme(
 			ccnb = fn[lpo - 1] * dfbi;
 			ccnc = fbi[lpo - 1] * dfb;
 			ccnd = fb[lpo - 1] * dfbi;
+			// CLUSTER terminated in this loop with li = 8.
 			c1->rmi[l60 - 1][i - 1] = 1.0 + uim * (ccna - ccnb) / (ccnc - ccnd);
 			c1->rei[l60 - 1][i - 1] = 1.0 + uim * (cri * ccna - ccnb) / (cri * ccnc - ccnd);
 		}