diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/plugin.xml b/bundles/org.eclipse.jst.ws.consumption.ui/plugin.xml
index 7d76773..69c67c3 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/plugin.xml
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/plugin.xml
@@ -19,6 +19,13 @@
       <import plugin="org.eclipse.wst.command.env"/>
       <import plugin="org.eclipse.wst.command.env.ui"/>
       <import plugin="org.eclipse.wst.command.env.core"/>
+      <!--
+      Should not need the following import, but absence causes
+      ClientHandlersWidgetOutputCommand to fail to compile due to
+      missing indirect dependency on
+      org.eclipse.jst.common.jdt.internal.integration.WorkingCopyProvider
+      -->
+      <import plugin="org.eclipse.jst.common.frameworks"/>
       <import plugin="org.eclipse.jst.ws" version="6.0.0" match="equivalent"/>
       <import plugin="org.eclipse.jst.ws.ui" version="6.0.0" match="equivalent"/>
       <import plugin="org.eclipse.jst.ws.consumption" version="6.0.0" match="equivalent"/>
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/test/wssample/WSSampleFinishCommand.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/test/wssample/WSSampleFinishCommand.java
index e2ef473..fd39ae7 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/test/wssample/WSSampleFinishCommand.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/test/wssample/WSSampleFinishCommand.java
@@ -199,7 +199,7 @@
     try{
       URL url;
       url = new URL(urlString.toString());
-      int style = WebBrowser.SHOW_TOOLBAR | WebBrowser.SHOW_STATUSBAR | WebBrowser.FORCE_NEW_PAGE;  
+      int style = WebBrowser.LOCATION_BAR | WebBrowser.BUTTON_BAR;  
 
       for( int retries = 0; retries < 10; retries++ )
       {
diff --git a/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/AbstractStartServer.java b/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/AbstractStartServer.java
index 470f29a..1d33dfd 100644
--- a/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/AbstractStartServer.java
+++ b/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/AbstractStartServer.java
@@ -60,7 +60,7 @@
       if (server.getServerRestartState())
       {    
       	
-        server.synchronousStop();
+        server.synchronousStop(false);
         log_.log(Log.INFO, 5050, this, "StartServer", "project="+project+", Stop command completed, restart needed");
         publishProject(server);
     	startProject(server);
@@ -159,7 +159,7 @@
 	if (server != null) {
 
 		if (server.getServerState() != IServer.STATE_STOPPED) {
-			server.synchronousStop();
+			server.synchronousStop(false);
 		}
 	}	
 	
diff --git a/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/CreateEJBProjectCommand.java b/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/CreateEJBProjectCommand.java
index 48a65f8..7c556ca 100644
--- a/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/CreateEJBProjectCommand.java
+++ b/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/CreateEJBProjectCommand.java
@@ -202,7 +202,7 @@
              if (serviceExistingServer != null)
              {
                if (serviceExistingServer.getServerState() != IServer.STATE_STOPPED)
-                 serviceExistingServer.synchronousStop();     
+                 serviceExistingServer.synchronousStop(false);     
                Status mmStatus = ServerUtils.getInstance().modifyModules(env, serviceExistingServer, ResourceUtils.getModule(earProject), false, new NullProgressMonitor());
                if (mmStatus.getSeverity()==Status.ERROR)
                	return mmStatus;
@@ -222,7 +222,7 @@
               if (defaultServer!=null)
               {
               	if (defaultServer.getServerState() != IServer.STATE_STOPPED) {
-                	 defaultServer.synchronousStop();                    
+                	 defaultServer.synchronousStop(false);                    
                 	 }
               	Status mmStatus = ServerUtils.getInstance().modifyModules(env, defaultServer, ResourceUtils.getModule(earProject), false, new NullProgressMonitor());
                 if (mmStatus.getSeverity()==Status.ERROR)
diff --git a/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/CreateWebProjectCommand.java b/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/CreateWebProjectCommand.java
index 0aadb3a..4107efb 100644
--- a/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/CreateWebProjectCommand.java
+++ b/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/CreateWebProjectCommand.java
@@ -221,7 +221,7 @@
         // Stopping server and removing EAR from Server
         if (existingServer_.getServerState() != IServer.STATE_STOPPED)
         {
-          existingServer_.synchronousStop();
+          existingServer_.synchronousStop(false);
         }        
         Status mmStatus = ServerUtils.getInstance().modifyModules(env, existingServer_, ResourceUtils.getModule(earProject), false, new NullProgressMonitor());
         if (mmStatus.getSeverity()==Status.ERROR)
@@ -251,7 +251,7 @@
         // Stopping server and removing EAR from Server
         if (existingServer_.getServerState() != IServer.STATE_STOPPED)
         {
-          existingServer_.synchronousStop();
+          existingServer_.synchronousStop(false);
         }        
         Status mmStatus = ServerUtils.getInstance().modifyModules(env, existingServer_, ResourceUtils.getModule(earProject), false, new NullProgressMonitor());
         if (mmStatus.getSeverity()==Status.ERROR)
diff --git a/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/GetMonitorCommand.java b/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/GetMonitorCommand.java
index f97648d..1f34d3e 100644
--- a/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/GetMonitorCommand.java
+++ b/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/GetMonitorCommand.java
@@ -118,15 +118,30 @@
                     monitorWorkingCopy.setLocalPort(monitoredPort);
                     monitorWorkingCopy.setRemoteHost(host);
                     monitorWorkingCopy.setRemotePort(port);
-                    monitorWorkingCopy.setProtocolAdapter(MonitorCore.findProtocolAdapter(MonitorCore.HTTP_PROTOCOL_ID));
-                    m = monitorWorkingCopy.save();
+                    monitorWorkingCopy.setProtocol("HTTP");
+                    try
+                    {
+                      m = monitorWorkingCopy.save();
+                    }
+                    catch (Throwable t)
+                    {
+                      Status warning = new SimpleStatus(WebServiceConsumptionPlugin.ID, WebServiceConsumptionPlugin.getMessage("MSG_ERROR_UNABLE_TO_START_MONITOR", new Object[]{String.valueOf(port), endpoint}), Status.WARNING, t);
+                      try
+                      {
+                        if (env != null)
+                          env.getStatusHandler().report(warning);
+                      }
+                      catch (StatusException se)
+                      {
+                      }
+                    }
                   }
                   if (m != null)
                   {
                     try
                     {
                       if (!m.isRunning())
-                        MonitorCore.startMonitor(m);
+                        m.start();
                       StringBuffer sb = new StringBuffer(endpointURL.getProtocol());
                       sb.append("://localhost:");
                       sb.append(String.valueOf(m.getLocalPort()));
diff --git a/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/StartTomcatServer.java b/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/StartTomcatServer.java
index e122455..508bc4d 100644
--- a/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/StartTomcatServer.java
+++ b/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/StartTomcatServer.java
@@ -29,7 +29,7 @@
 		if (server != null) {
 
 			if (server.getServerState() != IServer.STATE_STOPPED) {
-				server.synchronousStop();
+				server.synchronousStop(false);
 			}
 		}
 
