diff --git a/ackwork/ackwork_test.go b/ackwork/ackwork_test.go
index c23b841d11b8832bb8839910fda1d98835ef0d80..4ef64729b000292836c928197d8de2f34d3a2b42 100644
--- a/ackwork/ackwork_test.go
+++ b/ackwork/ackwork_test.go
@@ -108,17 +108,28 @@ func TestCsv(t *testing.T) {
 	}
 }
 
-var s1dplot = `
+var s9dplot = `
 ini_temp 0.0925
 final_temp 0.09
 x_ini 15,10,11,12,14,18,-12,-8,-9
-n_step 1000
+n_step 50000
+x_delta 0.2
 fOutName test9d
 fPltName testplot.svg
 xPltName testrajplt`
 
+var s9bdplot = `
+ini_temp 0.0925
+final_temp 0.09
+x_ini 15,10,11,12,14,0,-12,-8,-9
+n_step 50000
+x_delta 0.2
+fOutName test9db
+fPltName test9dbf
+xPltName test9dbtraj`
+
 var plotTest = []string{
-	s1dplot,
+	s9dplot, s9bdplot,
 }
 
 func TestPlot(t *testing.T) {
diff --git a/ackwork/dorun.go b/ackwork/dorun.go
index 3713acbdd49d5d6548fed16bf9a729d8ab56281d..8a000ee33574391ae4e4034fe545f011607dd85f 100644
--- a/ackwork/dorun.go
+++ b/ackwork/dorun.go
@@ -146,18 +146,18 @@ func saveStep(cprm *cprm, n uint32, tmprtr float64, x []float32, fTrial float64)
 }
 
 // nRunAdj will try to adjust the step size, given our history of accept/reject.
-func nRunAdj(mcPrm *mcPrm, runAcc float64, xDlta float32) float32 {
+func nRunAdj(mcPrm *mcPrm, nstep uint32, runAcc float64, xDlta float32) float32 {
 	const step = "step"
 
 	if runAcc < accRateIdeal-0.01 { // acceptance rate too low
 		xDlta *= 0.9
 		if mcPrm.verbose {
-			fmt.Println(step, xDlta, "decrease")
+			fmt.Println(step, nstep, "decrease", xDlta)
 		}
 	} else if (xDlta < maxxDlta) && (runAcc > accRateIdeal+0.01) {
 		xDlta *= 1.1
 		if mcPrm.verbose {
-			fmt.Println(step, xDlta, "increase")
+			fmt.Println(step, nstep, "increase",  xDlta)
 		}
 	}
 	return xDlta
@@ -188,26 +188,25 @@ func doRun(mcPrm *mcPrm) error {
 	runAcc := accRateIdeal                 // Running acceptance rate, exponentially weighted
 	copy(x, mcPrm.xIni)
 	fOld := ackley.Ackley(x) // Initial function value
+	fTrial := fOld
 	tmprtr := float64(mcPrm.iniTmp)
 	nRunAcc := nRunAccAdj // Every nRunAccAdj, try adjusting the step size.
 	const runMult = 0.99
 	xDlta := mcPrm.xDlta // Adaptable step size
+	if mcPrm.fOutName == "test9d.csv"{
+		breaker()
+	}
 	saveStep(&cprm, 0, tmprtr, x, fOld)
 
 	for n := uint32(0); n < mcPrm.nStep; n++ {
 		var acc bool
-		// nout--
-		// if nout == 0 { // Do we want to print out results on this step ?
-		// 	printfVal(cprm.fOut, x, n, tmprtr, fOld)
-		// 	nout = cprm.nEvery
-		// }
 		nRunAcc--
 		if nRunAcc == 0 { // Do we want to try adjusting the step size ?
-			xDlta = nRunAdj(mcPrm, runAcc, xDlta)
+			xDlta = nRunAdj(mcPrm, n, runAcc, xDlta)
 			nRunAcc = nRunAccAdj // Reset the counter
 		}
 		newx(x, xT, cprm.rand, xDlta)
-		fTrial := ackley.Ackley(xT)
+		fTrial = ackley.Ackley(xT)
 
 		if fOld < fTrial {
 			r := cprm.rand.Float64() // Make the decision as to whether to
@@ -232,7 +231,14 @@ func doRun(mcPrm *mcPrm) error {
 			tmprtr *= cprm.coolMult
 		}
 	}
+	if mcPrm.fOutName == "test9d.csv"{
+		breaker()
+	}
+
 	// On plots, we want the last step, even if nothing changed. Print me. Fix.
+	if fTrial != fOld { // last move was not accepted, so we have to add last step
+		saveStep (&cprm, mcPrm.nStep, tmprtr, x, fOld)
+	}
 	err := plotfWrt(cprm.plotnstp, cprm.plotf, cprm.plotTmprtr, cprm.fPlt, cprm.fplotme)
 	if err != nil {
 		return err