diff --git a/framework.security/src/main/java/org/apache/felix/framework/SecurityProviderImpl.java b/framework.security/src/main/java/org/apache/felix/framework/SecurityProviderImpl.java
index 5427a83..2a06343 100644
--- a/framework.security/src/main/java/org/apache/felix/framework/SecurityProviderImpl.java
+++ b/framework.security/src/main/java/org/apache/felix/framework/SecurityProviderImpl.java
@@ -69,7 +69,7 @@
      */
     public Object getSignerMatcher(final Bundle bundle, int signersType)
     {
-        BundleRevisionImpl module = ((BundleRevisionImpl) bundle.adapt(BundleRevision.class));
+        BundleRevisionImpl module = (BundleRevisionImpl) bundle.adapt(BundleRevision.class);
         return m_parser.getDNChains(module, module.getContent(), signersType);
     }
 
diff --git a/framework.security/src/main/java/org/apache/felix/framework/security/util/Conditions.java b/framework.security/src/main/java/org/apache/felix/framework/security/util/Conditions.java
index 485652c..34468eb 100644
--- a/framework.security/src/main/java/org/apache/felix/framework/security/util/Conditions.java
+++ b/framework.security/src/main/java/org/apache/felix/framework/security/util/Conditions.java
@@ -129,6 +129,10 @@
     public boolean isSatisfied(List posts, Permissions permissions,
         Permission permission)
     {
+        if (m_conditionInfos == null)
+        {
+            return true;
+        }
         boolean check = true;
         for (int i = 0; i < m_conditionInfos.length; i++)
         {
diff --git a/framework.security/src/main/java/org/apache/felix/framework/security/util/Permissions.java b/framework.security/src/main/java/org/apache/felix/framework/security/util/Permissions.java
index 651b2cd..ea190c7 100644
--- a/framework.security/src/main/java/org/apache/felix/framework/security/util/Permissions.java
+++ b/framework.security/src/main/java/org/apache/felix/framework/security/util/Permissions.java
@@ -505,7 +505,7 @@
             {
                 inner = new HashMap();
                 m_permissionCache.put(encoded,
-                    new SoftReference(inner, m_queue));
+                    new SoftReference(inner));
             }
 
             inner.put(new Entry(permission.getClass()), new Entry(permission));
diff --git a/framework.security/src/main/java/org/apache/felix/framework/security/util/TrustManager.java b/framework.security/src/main/java/org/apache/felix/framework/security/util/TrustManager.java
index 1f32e91..5b2520e 100644
--- a/framework.security/src/main/java/org/apache/felix/framework/security/util/TrustManager.java
+++ b/framework.security/src/main/java/org/apache/felix/framework/security/util/TrustManager.java
@@ -18,7 +18,9 @@
  */
 package org.apache.felix.framework.security.util;
 
+import java.io.File;
 import java.io.InputStream;
+import java.io.PrintStream;
 import java.security.KeyStore;
 import java.security.cert.CertificateFactory;
 import java.util.ArrayList;
@@ -119,7 +121,7 @@
 
     private void initCaCerts() throws Exception
     {
-        final Collection result = new ArrayList();
+    	final Collection result = new ArrayList();
 
         if (m_storeList.trim().length() != 0)
         {
