Index: trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/JFCComponent.java
===================================================================
--- trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/JFCComponent.java	(revision 842)
+++ trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/JFCComponent.java	(revision 850)
@@ -4,8 +4,10 @@
 import java.awt.Component;
 import java.awt.Container;
+import java.beans.PropertyChangeListener;
 import java.io.File;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.security.InvalidParameterException;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedList;
@@ -35,4 +37,13 @@
     private static Map<Component, JFCComponent> knownComponents =
         new HashMap<Component, JFCComponent>();
+    
+    /**
+     * <p>
+     * List of PropertyChangeListeners that are registered on the components.
+     * </p>
+     */
+    
+    private static List<PropertyChangeListener> propertyChangeListeners = 
+    	new ArrayList<PropertyChangeListener>();
 
     /**
@@ -47,4 +58,8 @@
     public static void add(Component component) {
         add(component, find(component.getParent()));
+    }
+    
+    public static void addListener(PropertyChangeListener list){
+    	propertyChangeListeners.add(list);
     }
 
@@ -162,4 +177,11 @@
         }
         this.component = component;
+        
+        AccessibleContext context = component.getAccessibleContext();
+        if (context != null){
+        	for (PropertyChangeListener listener: propertyChangeListeners)
+        		context.addPropertyChangeListener(listener);
+        }
+        
         this.parent = parent;
         if (parent != null) {
@@ -201,5 +223,5 @@
         builder.append("  <component");
         if (parent != null){
-        	builder.append(" parent=" + Integer.toHexString(parent.component.hashCode()));
+        	builder.append(" parent=\"" + Integer.toHexString(parent.component.hashCode()) + "\"");
         }
         builder.append(">"+ StringTools.ENDLINE);
@@ -351,4 +373,3 @@
         }
     }
-
 }
Index: trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/JFCListener.java
===================================================================
--- trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/JFCListener.java	(revision 842)
+++ trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/JFCListener.java	(revision 850)
@@ -107,5 +107,5 @@
         if (event.getSource() instanceof Component) {
             Component source = (Component) event.getSource();
-            builder.append(" hash=" + Integer.toHexString(source.hashCode()));
+            builder.append(" hash=\"" + Integer.toHexString(source.hashCode()) + "\"");
         }  
         builder.append(">" + StringTools.ENDLINE);
Index: trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/JFCMonitorOutputWriter.java
===================================================================
--- trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/JFCMonitorOutputWriter.java	(revision 842)
+++ trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/JFCMonitorOutputWriter.java	(revision 850)
@@ -34,11 +34,6 @@
     public JFCMonitorOutputWriter(OutputStreamWriter outputWriter) {
         this.outputWriter = outputWriter;
-        try {
-            outputWriter.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + StringTools.ENDLINE);
-            outputWriter.write("<sessions>" + StringTools.ENDLINE);
-        }
-        catch (IOException e) {
-            System.err.println("JFCMONITOR -- Failure writing to log: " + e.getMessage());
-        }
+        write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + StringTools.ENDLINE);
+        write("<sessions>" + StringTools.ENDLINE);
     }
     
Index: trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/NameChangeListener.java
===================================================================
--- trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/NameChangeListener.java	(revision 850)
+++ trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/NameChangeListener.java	(revision 850)
@@ -0,0 +1,44 @@
+/**
+ * 
+ */
+package de.ugoe.cs.quest.jfcmonitor;
+
+import java.awt.Component;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
+import de.ugoe.cs.util.StringTools;
+
+/**
+ * @author Fabian Glaser
+ *
+ */
+public class NameChangeListener implements PropertyChangeListener {
+	 /**
+     * <p>
+     * Writer for logging events.
+     * </p>
+     */
+    final private JFCMonitorOutputWriter outputWriter;	
+    
+    public NameChangeListener(JFCMonitorOutputWriter outputWriter){
+    	this.outputWriter = outputWriter;
+    }
+	
+	@Override
+	public void propertyChange(PropertyChangeEvent evt) {
+		if (evt.getPropertyName().equals("AccessibleName")){
+			StringBuilder builder = new StringBuilder();
+			builder.append("<componentNameChange hash=\"");
+			outputWriter.write(evt.getSource().toString());
+			if (JFCComponent.find((Component) evt.getSource()) == null)
+					System.err.println("Quelle nicht bekannt");
+			builder.append(Integer.toHexString(evt.getSource().hashCode()));
+			builder.append("\" newName=\"" + evt.getNewValue());
+			builder.append("\"/>" + StringTools.ENDLINE);
+			outputWriter.write(builder.toString());
+		}
+			
+	}
+	
+}
Index: trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/Runner.java
===================================================================
--- trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/Runner.java	(revision 842)
+++ trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/Runner.java	(revision 850)
@@ -64,4 +64,5 @@
         Toolkit.getDefaultToolkit().addAWTEventListener(new WindowMonitor(jfcWriter),
                                                         AWTEvent.WINDOW_EVENT_MASK);
+        JFCComponent.addListener(new NameChangeListener(jfcWriter));
 
         if (stdOutputWrite) {
@@ -79,4 +80,5 @@
                 Toolkit.getDefaultToolkit().addAWTEventListener(new WindowMonitor(stdJfcWriter),
                         AWTEvent.WINDOW_EVENT_MASK);
+                JFCComponent.addListener(new NameChangeListener(stdJfcWriter));
             }
             catch (UnsupportedEncodingException e) {
Index: trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/WindowMonitor.java
===================================================================
--- trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/WindowMonitor.java	(revision 842)
+++ trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/WindowMonitor.java	(revision 850)
