diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
index c7d4b11..1222733 100644
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
+++ b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
@@ -752,6 +752,24 @@
 		return activity;
 	}
 
+	public Configuration createNestedRelationship(Processor processor, Workflow childWorkflow, Profile profile) {
+		if(processor.getParent() == null) {
+			throw new IllegalStateException("Processor " + processor + " has no parent");
+		}
+		if(processor.getParent().getParent() != childWorkflow.getParent()) {
+			throw new IllegalStateException(
+					"Processor " + processor + " and workflow " + childWorkflow + " are not in the same Workflow bundle");
+		}
+		if(nestedWorkflowForProcessor(processor, profile) != null) {
+			throw new IllegalStateException("Processor " + processor + " already has a nested workflow");
+		}
+
+		Activity activity = createActivityFromProcessor(processor, profile);
+		activity.setType(NESTED_WORKFLOW);
+		Configuration configuration = createConfigurationFor(activity, NESTED_WORKFLOW);
+		return configuration;
+	}
+
 	public void removePortsBindingForUnknownPorts(ProcessorBinding binding) {
 		// First, remove ports no longer owned by processor
 		Iterator<ProcessorInputPortBinding> inputBindings = binding
