diff --git a/src/ac/ed/lurg/ModelConfig.java b/src/ac/ed/lurg/ModelConfig.java
index 746649145c4908aafe93c62b925206e00180ffb4..748f367392d83a3a5c097606f341898a329fe303 100755
--- a/src/ac/ed/lurg/ModelConfig.java
+++ b/src/ac/ed/lurg/ModelConfig.java
@@ -257,7 +257,7 @@ public class ModelConfig {
 	
 	// Calibration related stuff
 	public static final boolean IS_CALIBRATION_RUN = getBooleanProperty("IS_CALIBRATION_RUN", false);
-	public static final String CALIB_DIR = IS_CALIBRATION_RUN ? OUTPUT_DIR : getProperty("CALIB_DIR");
+	public static final String CALIB_DIR = IS_CALIBRATION_RUN ? OUTPUT_DIR : getProperty("CALIB_DIR", OUTPUT_DIR);
 	public static final int END_FIRST_STAGE_CALIBRATION = getIntProperty("END_FIRST_STAGE_CALIBRATION", 10);
 	public static final String SERIALIZED_LAND_USE_FILE = CALIB_DIR + File.separator +  "landUseRaster.ser";
 	public static final String SERIALIZED_CROP_USAGE_FILE = CALIB_DIR + File.separator +  "countryCropUsages.ser";
diff --git a/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java b/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java
index d78210d1914c317305ddbfecdf002ce92283b1e2..016fa1658df1dfeeda447e4d01a1a2578fa44092 100644
--- a/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java
+++ b/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java
@@ -9,6 +9,7 @@ import java.util.Vector;
 import com.gams.api.GAMSDatabase;
 import com.gams.api.GAMSException;
 import com.gams.api.GAMSGlobals;
+import com.gams.api.GAMSGlobals.ModelStat;
 import com.gams.api.GAMSJob;
 import com.gams.api.GAMSOptions;
 import com.gams.api.GAMSParameter;
@@ -337,13 +338,18 @@ public class GamsLocationOptimiser {
 	
 	@SuppressWarnings("serial")
 	private GamsLocationOutput handleResults(GAMSDatabase outDB) {
-		int modelStatus = (int) outDB.getParameter("ms").findRecord().getValue();
-		LogWriter.println(String.format("\n%s %s: Modelstatus %s, Solvestatus %s", 
-				inputData.getCountryInput().getCountry(),
-				inputData.getTimestep().getYear(),
-				GAMSGlobals.ModelStat.lookup( modelStatus ),
-				GAMSGlobals.SolveStat.lookup((int) outDB.getParameter("ss").findRecord().getValue()) ));
-
+		int modelStatusInt = (int) outDB.getParameter("ms").findRecord().getValue();
+		ModelStat modelStatus = GAMSGlobals.ModelStat.lookup(modelStatusInt);
+		String contextString = String.format("%s %s: Modelstatus %s, Solvestatus %s", 
+    			inputData.getCountryInput().getCountry(),
+			inputData.getTimestep().getYear(),
+			modelStatus.toString(),
+			GAMSGlobals.SolveStat.lookup((int) outDB.getParameter("ss").findRecord().getValue()));
+        LogWriter.println("\n" + contextString);
+
+		if (modelStatus != ModelStat.OPTIMAL_LOCAL) 
+			LogWriter.printlnError("Critical!!! Land use incorrectly solved. " + contextString);
+		
 		GAMSVariable varAreas = outDB.getVariable("area");
 		GAMSVariable varFertIntensities = outDB.getVariable("fertI");
 		GAMSVariable varIrrigIntensities = outDB.getVariable("irrigI");
diff --git a/src/ac/ed/lurg/country/gams/GamsLocationOutput.java b/src/ac/ed/lurg/country/gams/GamsLocationOutput.java
index df3ed1a1ea10d85f142bcbf29993035e978c90ad..48c7ccfd08c2d834ee673a7efeab75c45d7232fe 100644
--- a/src/ac/ed/lurg/country/gams/GamsLocationOutput.java
+++ b/src/ac/ed/lurg/country/gams/GamsLocationOutput.java
@@ -2,17 +2,19 @@ package ac.ed.lurg.country.gams;
 
 import java.util.Map;
 
+import com.gams.api.GAMSGlobals.ModelStat;
+
 import ac.ed.lurg.landuse.CropUsageData;
 import ac.ed.lurg.landuse.LandUseItem;
 import ac.ed.lurg.types.CropType;
 
 public class GamsLocationOutput {
-	int status;
+	ModelStat status;
 	
 	Map<Integer, LandUseItem> landUses;  // data mapped from id (not raster)
 	private Map<CropType, CropUsageData> cropUsageData;
 	
-	public GamsLocationOutput(int status, 
+	public GamsLocationOutput(ModelStat status, 
 			Map<Integer, LandUseItem> landUses, 
 			Map<CropType, CropUsageData> cropUsageData) {
 		super();
@@ -21,7 +23,7 @@ public class GamsLocationOutput {
 		this.cropUsageData = cropUsageData;
 	}
 	
-	public int getStatus() {
+	public ModelStat getStatus() {
 		return status;
 	}
 	public Map<Integer, LandUseItem> getLandUses() {
diff --git a/src/ac/ed/lurg/country/gams/GamsRasterOutput.java b/src/ac/ed/lurg/country/gams/GamsRasterOutput.java
index 05ad2abb9f1fc8dd0390058fbddad80cb9540c0d..33e021825cda6bb6983f9df3c5954fa199260fa6 100644
--- a/src/ac/ed/lurg/country/gams/GamsRasterOutput.java
+++ b/src/ac/ed/lurg/country/gams/GamsRasterOutput.java
@@ -2,6 +2,8 @@ package ac.ed.lurg.country.gams;
 
 import java.util.Map;
 
+import com.gams.api.GAMSGlobals.ModelStat;
+
 import ac.ed.lurg.landuse.CropUsageData;
 import ac.ed.lurg.landuse.LandUseItem;
 import ac.ed.lurg.types.CropType;
@@ -9,7 +11,7 @@ import ac.sac.raster.RasterSet;
 
 public class GamsRasterOutput {
 	
-	private int status;
+	private ModelStat status;
 	private RasterSet<LandUseItem> landUses;
 	private Map<CropType, CropUsageData> cropUsageData;
 
@@ -19,12 +21,12 @@ public class GamsRasterOutput {
         this.cropUsageData = cropUsageData;
 	}
 
-	public GamsRasterOutput(int status, RasterSet<LandUseItem> intensityRaster, Map<CropType, CropUsageData> cropUsageData) {
+	public GamsRasterOutput(ModelStat status, RasterSet<LandUseItem> intensityRaster, Map<CropType, CropUsageData> cropUsageData) {
 		this(intensityRaster, cropUsageData);
 		this.status = status;
 	}
 	
-	public int getStatus() {
+	public ModelStat getStatus() {
 		return status;
 	}