Index: trunk/objectmq/src/omq/common/event/EventDispatcher.java
===================================================================
--- trunk/objectmq/src/omq/common/event/EventDispatcher.java	(revision 27)
+++ trunk/objectmq/src/omq/common/event/EventDispatcher.java	(revision 28)
@@ -164,10 +164,12 @@
 	 */
 	public void dispatch(String topic, final Event event) {
-		for (final EventListener listener : listeners.get(topic)) {
-			new Thread() {
-				public void run() {
-					listener.notifyEvent(event);
-				}
-			}.start();
+		if (listeners.containsKey(topic)) {
+			for (final EventListener listener : listeners.get(topic)) {
+				new Thread() {
+					public void run() {
+						listener.notifyEvent(event);
+					}
+				}.start();
+			}
 		}
 	}
Index: trunk/objectmq/test/test2/Car.java
===================================================================
--- trunk/objectmq/test/test2/Car.java	(revision 28)
+++ trunk/objectmq/test/test2/Car.java	(revision 28)
@@ -0,0 +1,30 @@
+package test2;
+
+import java.util.List;
+
+import omq.Remote;
+import omq.client.annotation.AsyncMethod;
+import omq.client.annotation.RemoteInterface;
+import omq.client.annotation.SyncMethod;
+
+@RemoteInterface
+public interface Car extends Remote {
+	@AsyncMethod
+	public void setPlate(String plate);
+
+	@SyncMethod(timeout = 1500)
+	public String getPlate();
+
+	@AsyncMethod
+	public void setHP(int hp);
+
+	@SyncMethod(timeout = 1500)
+	public int getHP();
+
+	@AsyncMethod
+	public void setRims(List<Rim> rims);
+
+	@SyncMethod(timeout = 3000)
+	public List<Rim> getRims();
+
+}
Index: trunk/objectmq/test/test2/CarImpl.java
===================================================================
--- trunk/objectmq/test/test2/CarImpl.java	(revision 28)
+++ trunk/objectmq/test/test2/CarImpl.java	(revision 28)
@@ -0,0 +1,49 @@
+package test2;
+
+import java.util.List;
+
+import omq.server.remote.request.RemoteObject;
+
+public class CarImpl extends RemoteObject implements Car {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+	private String plate;
+	private int hp;
+	private List<Rim> rims;
+
+	@Override
+	public void setPlate(String plate) {
+		this.plate = plate;
+	}
+
+	@Override
+	public String getPlate() {
+		return plate;
+	}
+
+	@Override
+	public void setHP(int hp) {
+	
+	}
+
+	@Override
+	public int getHP() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public void setRims(List<Rim> rims) {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public List<Rim> getRims() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+}
Index: trunk/objectmq/test/test2/Rim.java
===================================================================
--- trunk/objectmq/test/test2/Rim.java	(revision 28)
+++ trunk/objectmq/test/test2/Rim.java	(revision 28)
@@ -0,0 +1,39 @@
+package test2;
+
+import java.io.Serializable;
+
+public class Rim implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private String model;
+	private int inch;
+
+	public Rim() {
+	}
+
+	public Rim(String model, int inch) {
+		this.model = model;
+		this.inch = inch;
+	}
+
+	public String getModel() {
+		return model;
+	}
+
+	public void setModel(String model) {
+		this.model = model;
+	}
+
+	public int getInch() {
+		return inch;
+	}
+
+	public void setInch(int inch) {
+		this.inch = inch;
+	}
+
+}
