diff --git a/core/src/net/sf/openrocket/rocketcomponent/BaseMotorMount.java b/core/src/net/sf/openrocket/rocketcomponent/BaseMotorMount.java
index b41df51b2..dc600cb4d 100644
--- a/core/src/net/sf/openrocket/rocketcomponent/BaseMotorMount.java
+++ b/core/src/net/sf/openrocket/rocketcomponent/BaseMotorMount.java
@@ -26,7 +26,10 @@ class BaseMotorMount implements SupportsFlightConfiguration<MotorConfiguration>,
 	@Override
 	public void cloneFlightConfiguration(String oldConfigId, String newConfigId) {
 		MotorConfiguration oldConfig = getFlightConfiguration(oldConfigId);
-		setFlightConfiguration(newConfigId, oldConfig.clone());
+		if ( oldConfig != null ) {
+			oldConfig = oldConfig.clone();
+		}
+		setFlightConfiguration(newConfigId, oldConfig);
 	}
 
 	@Override
diff --git a/core/src/net/sf/openrocket/rocketcomponent/RecoveryDevice.java b/core/src/net/sf/openrocket/rocketcomponent/RecoveryDevice.java
index e713aaf22..fda5e504b 100644
--- a/core/src/net/sf/openrocket/rocketcomponent/RecoveryDevice.java
+++ b/core/src/net/sf/openrocket/rocketcomponent/RecoveryDevice.java
@@ -143,7 +143,10 @@ public abstract class RecoveryDevice extends MassObject implements SupportsFligh
 	@Override
 	public void cloneFlightConfiguration( String oldConfigId, String newConfigId ) {
 		DeploymentConfiguration oldConfig = getFlightConfiguration(oldConfigId);
-		setFlightConfiguration( newConfigId, oldConfig.clone() );
+		if ( oldConfig != null ) {
+			oldConfig = oldConfig.clone();
+		}
+		setFlightConfiguration( newConfigId, oldConfig );
 	}
 	
 	public DeployEvent getDefaultDeployEvent() {