diff --git a/core/src/net/sf/openrocket/rocketcomponent/Parachute.java b/core/src/net/sf/openrocket/rocketcomponent/Parachute.java
index 6159936e9..b1d454c1d 100644
--- a/core/src/net/sf/openrocket/rocketcomponent/Parachute.java
+++ b/core/src/net/sf/openrocket/rocketcomponent/Parachute.java
@@ -105,10 +105,12 @@ public class Parachute extends RecoveryDevice {
 		if (MathUtil.equals(this.lineLength, length))
 			return;
 		this.lineLength = length;
-		if (getLineCount() != 0)
+		if (getLineCount() != 0) {
 			fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
-		else
+			clearPreset();
+		} else {
 			fireComponentChangeEvent(ComponentChangeEvent.NONFUNCTIONAL_CHANGE);
+		}
 	}
 
 	public final Material getLineMaterial() {
@@ -127,8 +129,10 @@ public class Parachute extends RecoveryDevice {
 		if (mat.equals(lineMaterial))
 			return;
 		this.lineMaterial = mat;
-		if (getLineCount() != 0)
+		if (getLineCount() != 0) {
+			clearPreset();
 			fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
+		}
 		else
 			fireComponentChangeEvent(ComponentChangeEvent.NONFUNCTIONAL_CHANGE);
 	}