diff --git a/diylc/diylc-core/lib/app-framework.jar b/diylc/diylc-core/lib/app-framework.jar
index dd8ddb35..713a1484 100644
Binary files a/diylc/diylc-core/lib/app-framework.jar and b/diylc/diylc-core/lib/app-framework.jar differ
diff --git a/diylc/diylc-core/src/org/diylc/presenter/update.xml b/diylc/diylc-core/src/org/diylc/presenter/update.xml
index 715bd201..7628475f 100644
--- a/diylc/diylc-core/src/org/diylc/presenter/update.xml
+++ b/diylc/diylc-core/src/org/diylc/presenter/update.xml
@@ -4326,6 +4326,14 @@
NEW_FEATURE
Configurable max switch combination count for circuit analysis (using org.diylc.maxSwitchCombinations argument)
+
+ IMPROVEMENT
+ Added resilience to the code that saves the configuration file to avoid it getting corrupted
+
+
+ IMPROVEMENT
+ When backing up the configuration file, append the current timestamp at the end instead of a '~'
+
BUG_FIX
General application slowness when Inductor component is added to the drawing
diff --git a/diylc/diylc-library/lib/app-framework.jar b/diylc/diylc-library/lib/app-framework.jar
index dd8ddb35..713a1484 100644
Binary files a/diylc/diylc-library/lib/app-framework.jar and b/diylc/diylc-library/lib/app-framework.jar differ
diff --git a/diylc/diylc-swing/lib/app-framework.jar b/diylc/diylc-swing/lib/app-framework.jar
index dd8ddb35..713a1484 100644
Binary files a/diylc/diylc-swing/lib/app-framework.jar and b/diylc/diylc-swing/lib/app-framework.jar differ
diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java
index 68264a86..9154547f 100644
--- a/diylc/diylc-swing/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java
+++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java
@@ -23,11 +23,10 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.Comparator;
-import java.util.Date;
import java.util.EnumSet;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -129,15 +128,11 @@ public class AutoSavePlugin implements IPlugIn {
name = name.substring(0, name.length() - 4);
// append date and time
- Date date = new Date();
- DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd-HHmmss");
- file = new File(AUTO_SAVE_PATH + File.separator + name + "." + dateFormat.format(date) + ".diy");
- // make sure that it doesn't already exist
- int i = 2;
- while (file.exists()) {
- file = new File(AUTO_SAVE_PATH + File.separator + name + "." + dateFormat.format(date) + "-" + i + ".diy");
- i++;
- }
+ String timestamp = LocalDateTime.now()
+ .format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)
+ .substring(0, 19)
+ .replace(':', '-');
+ file = new File(AUTO_SAVE_PATH + File.separator + name + "." + timestamp + ".diy");
return file.getAbsolutePath();
}