diff --git a/src/main/java/kieker/analysis/graph/export/dot/GraphTransformer.java b/src/main/java/kieker/analysis/graph/export/dot/GraphTransformer.java
index 18ff2f6a2df32e14c56dc066be58e17ca5276bf0..edea3a08e5b6f089a3d53f47d5c4fa1b7e26756e 100644
--- a/src/main/java/kieker/analysis/graph/export/dot/GraphTransformer.java
+++ b/src/main/java/kieker/analysis/graph/export/dot/GraphTransformer.java
@@ -16,6 +16,11 @@ public class GraphTransformer extends AbstractTransformer<String> {
 		dotBuilder = new DotBuilder(graph.getName());
 	}
 
+	public GraphTransformer(final Graph graph, final boolean isCluster) {
+		super(graph);
+		dotBuilder = new DotBuilder("cluster_" + graph.getName(), "subgraph");
+	}
+
 	@Override
 	protected void mapVertex(final Vertex vertex) {
 		if (vertex.hasChildGraph()) {
diff --git a/src/main/java/kieker/analysis/util/DotBuilder.java b/src/main/java/kieker/analysis/util/DotBuilder.java
index f2a80ddeb5af88607ffd9b4ed18edc97a9325cee..32749a5c80241fa9e3a770bf568b62ea46664d5d 100644
--- a/src/main/java/kieker/analysis/util/DotBuilder.java
+++ b/src/main/java/kieker/analysis/util/DotBuilder.java
@@ -15,27 +15,40 @@ import com.google.common.base.Joiner;
 public class DotBuilder {
 
 	private final String start;
-	private final String end = "}";
+	private final String end;
 	private final StringBuilder body = new StringBuilder();
 
 	private Map<String, String> defaultNodeProperties;
 	private Map<String, String> defaultEdgeProperties;
 	private Map<String, String> defaultProperties;
 
+	private static final String START_BRACKET = "{";
+	private static final String END_BRACKET = "}";
+	private static final String DEFAULT_GRAPH_NAME = "G";
+	private static final String DEFAULT_GRAPH_TYPE = "digraph";
+
 	public DotBuilder() {
-		this("G");
+		this(DEFAULT_GRAPH_NAME);
+	}
+
+	public DotBuilder(final String graphName) {
+		this(graphName, DEFAULT_GRAPH_TYPE);
 	}
 
-	public DotBuilder(final String name) {
-		start = "digraph " + name + " {\n";
+	// TODO graphType has to be one of "graph", "digraph" or "subgraph" so maybe use an enum
+	public DotBuilder(final String graphName, final String graphType) {
+		start = graphType + " " + graphName + " " + START_BRACKET + "\n";
+		end = END_BRACKET;
 	}
 
+	// TODO Deprecated
 	public DotBuilder(final String name, final Map<String, String> defaultNodeProperties, final Map<String, String> defaultEdgeProperties) {
 		this(name);
 		this.defaultNodeProperties = defaultNodeProperties;
 		this.defaultEdgeProperties = defaultEdgeProperties;
 	}
 
+	// TODO Deprecated
 	public DotBuilder(final String name, final Map<String, String> defaultNodeProperties, final Map<String, String> defaultEdgeProperties,
 			final Map<String, String> defaultProperties) {
 		this(name, defaultNodeProperties, defaultEdgeProperties);