diff --git a/configadmin/src/main/java/org/apache/felix/cm/file/FilePersistenceManager.java b/configadmin/src/main/java/org/apache/felix/cm/file/FilePersistenceManager.java
index 1a0234a..ffef4d0 100644
--- a/configadmin/src/main/java/org/apache/felix/cm/file/FilePersistenceManager.java
+++ b/configadmin/src/main/java/org/apache/felix/cm/file/FilePersistenceManager.java
@@ -449,7 +449,8 @@
         {
             public Object run()
             {
-                return Boolean.valueOf( _exists( pid ) );
+                // FELIX-2771: Boolean.valueOf(boolean) is not in Foundation
+                return _exists( pid ) ? Boolean.TRUE : Boolean.FALSE;
             }
         } );
         return ( ( Boolean ) result ).booleanValue();
@@ -504,7 +505,8 @@
         }
         catch ( PrivilegedActionException pae )
         {
-            throw ( IOException ) pae.getCause();
+            // FELIX-2771: getCause() is not available in Foundation
+            throw ( IOException ) pae.getException();
         }
     }
 
@@ -597,7 +599,8 @@
         }
         catch ( PrivilegedActionException pae )
         {
-            throw ( IOException ) pae.getCause();
+            // FELIX-2771: getCause() is not available in Foundation
+            throw ( IOException ) pae.getException();
         }
     }
 
diff --git a/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java b/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java
index 9786d2c..fa8cb9b 100644
--- a/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java
+++ b/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java
@@ -93,7 +93,7 @@
 
     // random number generator to create configuration PIDs for factory
     // configurations
-    private static SecureRandom numberGenerator;
+    private static Random numberGenerator;
 
     // comparator used to keep the ordered persistence manager map
     private static final Comparator cmRankComp = new RankingComparator( true, ConfigurationPlugin.CM_RANKING );
@@ -870,10 +870,19 @@
      */
     private static String createPid( String factoryPid )
     {
-        SecureRandom ng = numberGenerator;
+        Random ng = numberGenerator;
         if ( ng == null )
         {
-            numberGenerator = ng = new SecureRandom();
+            // FELIX-2771 Secure Random not available on Mika
+            try
+            {
+                ng = new SecureRandom();
+            }
+            catch ( Throwable t )
+            {
+                // fall back to Random
+                ng = new Random();
+            }
         }
 
         byte[] randomBytes = new byte[16];
