diff --git a/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/CxfBcProviderSecurityTest.java b/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/CxfBcProviderSecurityTest.java
index 5ca8e14..ca9fdca 100644
--- a/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/CxfBcProviderSecurityTest.java
+++ b/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/CxfBcProviderSecurityTest.java
@@ -19,8 +19,6 @@
 import java.io.File;
 import java.io.IOException;
 import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
 
 import javax.jbi.messaging.InOut;
 import javax.xml.namespace.QName;
@@ -72,17 +70,7 @@
     public boolean launchServer(Class<?> clz, boolean inProcess) {
         boolean ok = false;
         try { 
-            // java.security.properties is set when using the ibm jdk to work
-            // around some security test issues.  Check our system properties
-            // for this key, and if it's set, then propagate the property on
-            // to the server we launch as well.
-            Map<String, String> properties = null;
-            if (System.getProperty("java.security.properties") != null) {
-                properties = new HashMap<String, String>();
-                properties.put("java.security.properties",
-                    System.getProperty("java.security.properties"));
-            }
-            sl = new ServerLauncher(clz.getName(), properties, null, inProcess);
+            sl = new ServerLauncher(clz.getName(), inProcess);
             ok = sl.launchServer();            
             assertTrue("server failed to launch", ok);
             
