diff --git a/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationImpl.java b/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationImpl.java
index 26b6afc..e539c28 100644
--- a/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationImpl.java
+++ b/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationImpl.java
@@ -69,7 +69,7 @@
 
     private final ArrayList<Participant> participants;
 
-    private final HashMap<Class<?>, Object> variables;
+    private final Map<Class<?>, Object> variables;
 
     private TimerTask timeoutTask;
 
@@ -214,6 +214,8 @@
                 this.waitLock.notifyAll();
             }
 
+            this.associatedThread = null;
+
             if ( this.failReason != null )
             {
                 throw new CoordinationException("Nested coordination failed", this,
diff --git a/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinatorImpl.java b/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinatorImpl.java
index 1eb9c6e..04d0524 100644
--- a/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinatorImpl.java
+++ b/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinatorImpl.java
@@ -18,12 +18,14 @@
  */
 package org.apache.felix.coordinator.impl;
 
+import java.security.Permission;
 import java.util.Collection;
 import java.util.TimerTask;
 
 import org.osgi.framework.Bundle;
 import org.osgi.service.coordinator.Coordination;
 import org.osgi.service.coordinator.CoordinationException;
+import org.osgi.service.coordinator.CoordinationPermission;
 import org.osgi.service.coordinator.Coordinator;
 import org.osgi.service.coordinator.Participant;
 
@@ -123,12 +125,22 @@
         }
     }
 
+    private void checkPermission(final String coordinationName, final String actions )
+    {
+        final SecurityManager securityManager = System.getSecurityManager();
+        if (securityManager != null)
+        {
+            final Permission permission = new CoordinationPermission(coordinationName, this.owner, actions);
+            securityManager.checkPermission(permission);
+        }
+    }
+
     /**
      * @see org.osgi.service.coordinator.Coordinator#create(java.lang.String, long)
      */
     public Coordination create(final String name, final long timeout)
     {
-        // TODO: check permission
+        this.checkPermission(name, CoordinationPermission.INITIATE);
 
     	// check arguments
     	checkName(name);
