Index: trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/ReplayGenerator.java
===================================================================
--- trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/ReplayGenerator.java	(revision 54)
+++ trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/ReplayGenerator.java	(revision 58)
@@ -13,17 +13,22 @@
 
 public class ReplayGenerator {
-		
+	
+	private IReplayDecorator decorator = null;
+	
 	public void createLogfileMultipleSessions(List<List<ReplayableEvent<?>>> sequences, String filename) {
 		OutputStreamWriter writer = openReplayFile(filename);
 		if( writer!=null ) {		
 			try {
-				writer.write("<?xml version=\"1.0\" encoding=\"UTF-16\"?>" + StringTools.ENDLINE);
-				writer.write("<log>" + StringTools.ENDLINE);
-
+				decorator = sequences.get(0).get(0).getReplayDecorator();
+				if( decorator!=null ) {
+					writer.write(decorator.getHeader());
+				}
 				for( List<ReplayableEvent<?>> actions : sequences ) {
 					writeSession(actions, writer);
 				}
-				
-				writer.write("</log>" + StringTools.ENDLINE);
+				if( decorator!=null ) {
+					writer.write(decorator.getFooter());
+				}
+				decorator = null;
 				writer.close();
 			} catch (IOException e) {
@@ -37,10 +42,13 @@
 		if( writer!=null ) {		
 			try {
-				writer.write("<?xml version=\"1.0\" encoding=\"UTF-16\"?>" + StringTools.ENDLINE);
-				writer.write("<log>" + StringTools.ENDLINE);
-	
+				actions.get(0).getReplayDecorator();
+				if( decorator!=null ) {
+					writer.write(decorator.getHeader());
+				}
 				writeSession(actions, writer);
-				
-				writer.write("</log>" + StringTools.ENDLINE);
+				if( decorator!=null ) {
+					writer.write(decorator.getFooter());
+				}
+				decorator = null;
 				writer.close();
 			} catch (IOException e) {
@@ -76,5 +84,7 @@
 	private void writeSession(List<ReplayableEvent<?>> actions, OutputStreamWriter writer)
 			throws IOException {
-		writer.write(" <session>" + StringTools.ENDLINE);
+		if( decorator!=null ) {
+			writer.write(decorator.getSessionHeader());
+		}
 		for( ReplayableEvent<?> currentAction : actions ) {
 			
@@ -82,7 +92,10 @@
 			for( IReplayable replayble : replayables ) {
 				writer.write(replayble.getReplayXml()+StringTools.ENDLINE);
+				writer.flush();
 			}
 		}
-		writer.write(" </session>" + StringTools.ENDLINE);
+		if( decorator!=null ) {
+			writer.write(decorator.getSessionFooter());
+		}
 	}
 
Index: trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/windows/EventGenerator.java
===================================================================
--- trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/windows/EventGenerator.java	(revision 54)
+++ trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/windows/EventGenerator.java	(revision 58)
@@ -145,4 +145,5 @@
 			currentRuleName = currentRule.getAttributeValue("name");
 			currentToken = new ReplayableEvent<WindowsMessage>(currentRuleName);
+			currentToken.setDecorator(MFCReplayDecorator.getInstance());
 			isMatch = true;
 			messageStorage = new HashMap<String, Object>();
Index: trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/windows/MFCReplayDecorator.java
===================================================================
--- trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/windows/MFCReplayDecorator.java	(revision 58)
+++ trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/windows/MFCReplayDecorator.java	(revision 58)
@@ -0,0 +1,42 @@
+package de.ugoe.cs.eventbench.windows;
+
+import de.ugoe.cs.eventbench.IReplayDecorator;
+import de.ugoe.cs.util.StringTools;
+
+public class MFCReplayDecorator implements IReplayDecorator {
+
+	private static MFCReplayDecorator theInstance;
+	
+	private MFCReplayDecorator() {};
+	
+	public static MFCReplayDecorator getInstance() {
+		if( theInstance==null ) {
+			theInstance = new MFCReplayDecorator();
+		}
+		return theInstance;
+	}
+	
+	@Override
+	public String getHeader() {
+		return "<?xml version=\"1.0\" encoding=\"UTF-16\"?>" + StringTools.ENDLINE +
+			   "<log>" + StringTools.ENDLINE;
+		
+	}
+
+	@Override
+	public String getFooter() {
+		return "</log>" + StringTools.ENDLINE;
+	}
+
+	@Override
+	public String getSessionHeader() {
+		return " <session>" + StringTools.ENDLINE;
+	}
+
+	@Override
+	public String getSessionFooter() {
+		return " </session>" + StringTools.ENDLINE;
+	}
+	
+
+}
