diff --git a/src/ac/ed/lurg/InternationalMarket.java b/src/ac/ed/lurg/InternationalMarket.java
index ac25b1f2639f67e1ca98ed252b11caa6c62669aa..f9a4e9287ea9669ba8a7877e91dedcc1a9865fec 100644
--- a/src/ac/ed/lurg/InternationalMarket.java
+++ b/src/ac/ed/lurg/InternationalMarket.java
@@ -105,8 +105,9 @@ public class InternationalMarket {
 
 	public void serializeGlobalPrices() {
 		try {
-			LogWriter.println("Starting serializing GlobalPrice to " + ModelConfig.SERIALIZED_INTERNATIONAL_MARKET_FILE);
-			FileOutputStream fileOut = new FileOutputStream(ModelConfig.SERIALIZED_INTERNATIONAL_MARKET_FILE);
+			String fileStr = ModelConfig.IS_CALIBRATION_RUN ? ModelConfig.SERIALIZED_INTERNATIONAL_MARKET_FILE : ModelConfig.CHECKPOINT_INTERNATIONAL_MARKET_FILE;
+			LogWriter.println("Starting serializing GlobalPrice to " + fileStr);
+			FileOutputStream fileOut = new FileOutputStream(fileStr);
 			ObjectOutputStream out = new ObjectOutputStream(fileOut);
 			out.writeObject(worldPrices);
 			out.close();
diff --git a/src/ac/ed/lurg/ModelConfig.java b/src/ac/ed/lurg/ModelConfig.java
index aba2b20c564415abbec68199f6f9e28ff830d3d2..1fb85b6a65a739b39c6d1c47cd468961b21ecf23 100755
--- a/src/ac/ed/lurg/ModelConfig.java
+++ b/src/ac/ed/lurg/ModelConfig.java
@@ -257,9 +257,16 @@ public class ModelConfig {
 	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", 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";
-	public static final String SERIALIZED_INTERNATIONAL_MARKET_FILE = CALIB_DIR + File.separator +  "internationalMarket.ser";
+	public static final String SERIALIZED_LAND_USE_FILENAME = "landUseRaster.ser";
+	public static final String SERIALIZED_CROP_USAGE_FILENAME = "countryCropUsages.ser";
+	public static final String SERIALIZED_INTERNATIONAL_MARKET_FILENAME = "internationalMarket.ser";
+	public static final String SERIALIZED_LAND_USE_FILE = CALIB_DIR + File.separator +  SERIALIZED_LAND_USE_FILENAME;
+	public static final String SERIALIZED_CROP_USAGE_FILE = CALIB_DIR + File.separator +  SERIALIZED_CROP_USAGE_FILENAME;
+	public static final String SERIALIZED_INTERNATIONAL_MARKET_FILE = CALIB_DIR + File.separator +  SERIALIZED_INTERNATIONAL_MARKET_FILENAME;
+	public static final String CHECKPOINT_LAND_USE_FILE = getProperty("CHECKPOINT_LAND_USE_FILE", OUTPUT_DIR + File.separator +  SERIALIZED_LAND_USE_FILENAME);
+	public static final String CHECKPOINT_CROP_USAGE_FILE = getProperty("CHECKPOINT_CROP_USAGE_FILE", OUTPUT_DIR + File.separator +  SERIALIZED_CROP_USAGE_FILENAME);
+	public static final String CHECKPOINT_INTERNATIONAL_MARKET_FILE = getProperty("CHECKPOINT_INTERNATIONAL_MARKET_FILE", OUTPUT_DIR + File.separator +  SERIALIZED_INTERNATIONAL_MARKET_FILENAME);
+	
 	public static final boolean MARKET_ADJ_PRICE = getBooleanProperty("MARKET_ADJ_PRICE", true);
 	public static final boolean CHANGE_YIELD_DATA_YEAR = IS_CALIBRATION_RUN ? false : getBooleanProperty("CHANGE_YIELD_DATA_YEAR", true);
 	public static final String CLUSTERED_YIELD_FILE = getProperty("CLUSTERED_YIELD_FILE", CALIB_DIR + File.separator + "cluster.asc");
diff --git a/src/ac/ed/lurg/ModelMain.java b/src/ac/ed/lurg/ModelMain.java
index 108914d29e35e8c5bb3900b72796c6cfc3aac5bb..5a3096e0c9b055848c84a54d3aa7c86669064f13 100644
--- a/src/ac/ed/lurg/ModelMain.java
+++ b/src/ac/ed/lurg/ModelMain.java
@@ -541,8 +541,9 @@ public class ModelMain {
 
 	private void serializeLandUse(RasterSet<LandUseItem> landUseRaster) {
 		try {
-			LogWriter.println("Starting serializing LandUse to " + ModelConfig.SERIALIZED_LAND_USE_FILE);
-			FileOutputStream fileOut = new FileOutputStream(ModelConfig.SERIALIZED_LAND_USE_FILE);
+			String fileStr = ModelConfig.IS_CALIBRATION_RUN ? ModelConfig.SERIALIZED_LAND_USE_FILE : ModelConfig.CHECKPOINT_LAND_USE_FILE;
+			LogWriter.println("Starting serializing LandUse to " + fileStr);
+			FileOutputStream fileOut = new FileOutputStream(fileStr);
 			ObjectOutputStream out = new ObjectOutputStream(fileOut);
 			out.writeObject(landUseRaster);
 			out.close();
diff --git a/src/ac/ed/lurg/country/CountryAgentManager.java b/src/ac/ed/lurg/country/CountryAgentManager.java
index 7a9abf49361200c6dee2ad2169964464ef977309..3d413b3c65fef507f3337cd023b56e48ca5e77fc 100644
--- a/src/ac/ed/lurg/country/CountryAgentManager.java
+++ b/src/ac/ed/lurg/country/CountryAgentManager.java
@@ -152,8 +152,9 @@ public class CountryAgentManager {
 		}
 		
 		try {
-			LogWriter.println("Starting serializing CropUsages to " + ModelConfig.SERIALIZED_CROP_USAGE_FILE);
-			FileOutputStream fileOut = new FileOutputStream(ModelConfig.SERIALIZED_CROP_USAGE_FILE);
+			String fileStr = ModelConfig.IS_CALIBRATION_RUN ? ModelConfig.SERIALIZED_CROP_USAGE_FILE : ModelConfig.CHECKPOINT_CROP_USAGE_FILE;
+			LogWriter.println("Starting serializing CropUsages to " + fileStr);
+			FileOutputStream fileOut = new FileOutputStream(fileStr);
 			ObjectOutputStream out = new ObjectOutputStream(fileOut);
 			out.writeObject(cropUsageDataMap);
 			out.close();