Index: jaxws-ri/rt/src/com/sun/xml/ws/server/RuntimeEndpointInfo.java
===================================================================
RCS file: /cvs/jax-ws-sources/jaxws-ri/rt/src/com/sun/xml/ws/server/RuntimeEndpointInfo.java,v
retrieving revision 1.81
diff -u -r1.81 RuntimeEndpointInfo.java
--- jaxws-ri/rt/src/com/sun/xml/ws/server/RuntimeEndpointInfo.java	29 Jun 2006 23:49:40 -0000	1.81
+++ jaxws-ri/rt/src/com/sun/xml/ws/server/RuntimeEndpointInfo.java	21 Aug 2006 04:47:46 -0000
@@ -106,6 +106,7 @@
     private EntityResolver wsdlResolver;
     private QName portTypeName;
     private Integer mtomThreshold;
+    private boolean enableDotNetHack;
     private static final Logger logger = Logger.getLogger(
         com.sun.xml.ws.util.Constants.LoggingDomain + ".server.endpoint");
     private static final Localizer localizer = new Localizer();
@@ -377,7 +378,7 @@
         }
         WSDLGenResolver wsdlResolver = new WSDLGenResolver(getDocMetadata());
         WSDLGenerator wsdlGen = new WSDLGenerator(runtimeModel, wsdlResolver,
-                ((BindingImpl)binding).getBindingId());
+                ((BindingImpl)binding).getBindingId(), enableDotNetHack);
         try {
             wsdlGen.doGeneration();
         } catch(Exception e) {
@@ -838,6 +839,14 @@
     public ProviderModel getProviderModel() {
         return providerModel;
     }
+
+	public boolean isEnableDotNetHack() {
+		return enableDotNetHack;
+	}
+
+	public void setEnableDotNetHack(boolean enableDotNetHack) {
+		this.enableDotNetHack = enableDotNetHack;
+	}
 
 
 }
Index: jaxws-ri/rt/src/com/sun/xml/ws/wsdl/writer/WSDLGenerator.java
===================================================================
RCS file: /cvs/jax-ws-sources/jaxws-ri/rt/src/com/sun/xml/ws/wsdl/writer/WSDLGenerator.java,v
retrieving revision 1.54
diff -u -r1.54 WSDLGenerator.java
--- jaxws-ri/rt/src/com/sun/xml/ws/wsdl/writer/WSDLGenerator.java	29 Jun 2006 23:50:08 -0000	1.54
+++ jaxws-ri/rt/src/com/sun/xml/ws/wsdl/writer/WSDLGenerator.java	21 Aug 2006 04:47:47 -0000
@@ -115,13 +115,15 @@
     private String wsdlLocation;
     private String portWSDLID;
     private String schemaPrefix;
+    private boolean enableDotNetHack;
 
 
-    public WSDLGenerator(RuntimeModel model, WSDLOutputResolver wsdlResolver, String bindingId) {
+    public WSDLGenerator(RuntimeModel model, WSDLOutputResolver wsdlResolver, String bindingId, boolean enableDotNetHack) {
         this.model = model;
         resolver = new JAXWSOutputSchemaResolver();
         this.wsdlResolver = wsdlResolver;
         this.bindingId = bindingId;
+        this.enableDotNetHack = enableDotNetHack;
     }
 
     public void doGeneration() {
@@ -283,8 +285,12 @@
                         // if its not really wrapper style dont use the same name as input message
                         if (unwrappable)
                             part = message.part().name(RESULT);
-                        else
-                            part = message.part().name(UNWRAPPABLE_RESULT);
+                        else {
+	                        if (enableDotNetHack) {
+	                        	part = message.part().name(RESULT);
+	                        } else 
+	                        	part = message.part().name(UNWRAPPABLE_RESULT);
+                        }
                         part.element(param.getName());
                     } else {
                         part = message.part().name(param.getPartName());
@@ -402,6 +408,7 @@
         List<Parameter> sortedParams = sortMethodParameters(method);
         boolean isWrapperStyle = isWrapperStyle(method);
         int i = 0;
+        if (enableDotNetHack) return;
         for (Parameter parameter : sortedParams) {
 //            System.out.println("param: "+parameter.getIndex()+" name: "+parameter.getName().getLocalPart());
             if (parameter.getIndex() < 0)
@@ -600,8 +607,12 @@
                                     // if its not really wrapper style dont use the same name as input message
                                     if (unwrappable)
                                         parts = RESULT;
-                                    else
+                                    else {
+                                    	if (enableDotNetHack) {
+                                    		parts = RESULT;
+                                    	}
                                         parts = UNWRAPPABLE_RESULT;
+                                    }
                                 } else {
                                     parts = param.getPartName();
                                 }
@@ -701,8 +712,12 @@
                             // if its not really wrapper style dont use the same name as input message
                             if (unwrappable)
                                 body.parts(RESULT);
-                            else
-                                body.parts(UNWRAPPABLE_RESULT);
+                            else {
+                            	if (enableDotNetHack) {
+                            		body.parts(RESULT);
+                            	}
+                            	body.parts(UNWRAPPABLE_RESULT);	
+                            }
                         } else {
                             body.parts(param.getPartName());
                         }
Index: jaxws-ri/rt/src/com/sun/xml/ws/transport/http/servlet/RuntimeEndpointInfoParser.java
===================================================================
RCS file: /cvs/jax-ws-sources/jaxws-ri/rt/src/com/sun/xml/ws/transport/http/servlet/RuntimeEndpointInfoParser.java,v
retrieving revision 1.23
diff -u -r1.23 RuntimeEndpointInfoParser.java
--- jaxws-ri/rt/src/com/sun/xml/ws/transport/http/servlet/RuntimeEndpointInfoParser.java	29 Jun 2006 23:49:55 -0000	1.23
+++ jaxws-ri/rt/src/com/sun/xml/ws/transport/http/servlet/RuntimeEndpointInfoParser.java	21 Aug 2006 04:47:46 -0000
@@ -126,6 +126,12 @@
                         sb.setMTOMEnabled(Boolean.valueOf(mtom));
                     }
                 }
+                
+                String enableDotNetHack = getAttribute(attrs, ATTR_ENABLE_DOT_NET_HACK);
+                if (enableDotNetHack != null && 
+                		(enableDotNetHack.equalsIgnoreCase("true") || enableDotNetHack.equalsIgnoreCase("yes"))) {
+                	rei.setEnableDotNetHack(true);
+                }
 
                 rei.setUrlPattern(
                     getMandatoryNonEmptyAttribute(reader, attrs, ATTR_URL_PATTERN));
@@ -340,6 +346,7 @@
     public static final String ATTR_ENABLE_MTOM = "enable-mtom";
     public static final String ATTR_MTOM_THRESHOLD_VALUE = "mtom-threshold-value";
     public static final String ATTR_BINDING = "binding";
+    public static final String ATTR_ENABLE_DOT_NET_HACK = "enable-dot-net-hack";
 
     public static final String ATTRVALUE_VERSION_1_0 = "2.0";
     private static final Logger logger =
Index: .project
===================================================================
RCS file: .project
diff -N .project
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ .project	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>jax-ws-sources</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: .classpath
===================================================================
RCS file: .classpath
diff -N .classpath
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ .classpath	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="jaxws-ri/rt/src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/activation.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/ant-junit.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/ant-launcher.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/ant-nodeps.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/ant-trax.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/ant.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/FastInfoset.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/http.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/jaxb-api.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/jaxb-impl.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/jaxb-xjc.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/jaxws-api.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/jsr173_api.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/jsr181-api.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/jsr250-api.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/junit.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/package-rename-task.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/resolver.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/saaj-api.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/saaj-impl.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/servlet.jar"/>
+	<classpathentry exported="true" kind="lib" path="jaxws-ri/lib/sjsxp.jar"/>
+	<classpathentry kind="output" path="classes"/>
+</classpath>