diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/IConnectionListener.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/IConnectionListener.java
index 75dfaf1..b822aae 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/IConnectionListener.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/IConnectionListener.java
@@ -33,5 +33,12 @@
 	 *            the disconnect event
 	 */
 	public void handleDisconnectEvent(DisconnectEvent event);
+	
+	/**
+	 * Handle connect event
+	 * 
+	 * @param event the connection event.
+	 */
+	public void handleConnectEvent(ConnectionEvent event);
 
 }
\ No newline at end of file
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java
index 6843c54..37cc6fb 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java
@@ -56,6 +56,7 @@
 import org.eclipse.ecf.internal.provider.Messages;
 import org.eclipse.ecf.internal.provider.ProviderPlugin;
 import org.eclipse.ecf.provider.comm.AsynchEvent;
+import org.eclipse.ecf.provider.comm.ConnectionEvent;
 import org.eclipse.ecf.provider.comm.DisconnectEvent;
 import org.eclipse.ecf.provider.comm.IAsynchConnection;
 import org.eclipse.ecf.provider.comm.IConnection;
@@ -211,6 +212,10 @@
 		public ID getEventHandlerID() {
 			return getID();
 		}
+		
+		public void handleConnectEvent(ConnectionEvent event) {
+			
+		}
 
 		public void handleDisconnectEvent(DisconnectEvent event) {
 			processDisconnect(event);
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainerConfig.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainerConfig.java
index d9f8938..8f837a8 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainerConfig.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainerConfig.java
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2004 Composent, Inc. and others.
+ * Copyright (c) 2004 2007 Composent, Inc. and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -13,6 +13,8 @@
 
 import java.util.HashMap;
 import java.util.Map;
+
+import org.eclipse.core.runtime.Assert;
 import org.eclipse.ecf.core.identity.ID;
 import org.eclipse.ecf.core.sharedobject.ISharedObjectContainerConfig;
 
@@ -21,11 +23,13 @@
 	Map properties;
 
 	public SOContainerConfig(ID id, Map props) {
+		Assert.isNotNull(id);
 		this.id = id;
-		this.properties = props;
+		this.properties = (props == null)?new HashMap():props;
 	}
 
 	public SOContainerConfig(ID id) {
+		Assert.isNotNull(id);
 		this.id = id;
 		this.properties = new HashMap();
 	}
