diff --git a/src/org/apache/kandula/context/at/ATActivityContext.java b/src/org/apache/kandula/context/at/ATActivityContext.java
index 11abba2..1fcf1f6 100644
--- a/src/org/apache/kandula/context/at/ATActivityContext.java
+++ b/src/org/apache/kandula/context/at/ATActivityContext.java
@@ -19,6 +19,7 @@
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.kandula.Constants;
 import org.apache.kandula.KandulaException;
+import org.apache.kandula.Status;
 import org.apache.kandula.context.ActivityContext;
 import org.apache.kandula.context.ActivityContextImpl;
 import org.apache.kandula.context.Participant;
@@ -60,6 +61,7 @@
      */
     public ATActivityContext() {
         super(Constants.WS_AT);
+        this.setStatus(Status.CoordinatorStatus.STATUS_ACTIVE);
         volatileParticipantsTable = new Hashtable();
         durableParticipantsTable = new Hashtable();
     }
@@ -72,6 +74,7 @@
         parentEPR = context.getRegistrationService();
 //        context.setRegistrationService(EndpointReferenceFactory.getInstance()
 //                .getRegistrationEndpoint());
+        this.setStatus(Status.CoordinatorStatus.STATUS_ACTIVE);
         volatileParticipantsTable = new Hashtable();
         durableParticipantsTable = new Hashtable();
         setCoordinationContext(context);
diff --git a/test/org/apache/kandula/coordinator/context/ActivityContextTest.java b/test/org/apache/kandula/context/ActivityContextTest.java
similarity index 100%
rename from test/org/apache/kandula/coordinator/context/ActivityContextTest.java
rename to test/org/apache/kandula/context/ActivityContextTest.java
diff --git a/test/org/apache/kandula/coordinator/CoordinatorImplTest.java b/test/org/apache/kandula/coordinator/CoordinatorImplTest.java
index bd5aecc..837c80b 100644
--- a/test/org/apache/kandula/coordinator/CoordinatorImplTest.java
+++ b/test/org/apache/kandula/coordinator/CoordinatorImplTest.java
@@ -23,7 +23,6 @@
 import org.apache.kandula.context.ActivityContext;
 import org.apache.kandula.context.coordination.CoordinationContext;
 import org.apache.kandula.context.at.ATActivityContext;
-import org.xmlsoap.schemas.ws.x2003.x09.wscoor.CoordinationContextType;
 
 /**
  * @author <a href="mailto:thilina@opensource.lk"> Thilina Gunarathne </a>
