Index: org/apache/axis/encoding/ser/BeanDeserializer.java
===================================================================
RCS file: /home/cvspublic/xml-axis/java/src/org/apache/axis/encoding/ser/BeanDeserializer.java,v
retrieving revision 1.23
diff -u -r1.23 BeanDeserializer.java
--- org/apache/axis/encoding/ser/BeanDeserializer.java	7 May 2002 16:08:49 -0000	1.23
+++ org/apache/axis/encoding/ser/BeanDeserializer.java	10 May 2002 00:40:41 -0000
@@ -92,6 +92,8 @@
     Class javaType;
     protected HashMap propertyMap = new HashMap();
     protected QName prevQName;
+
+    public static final String DESERIALIZE_ANY = "DESERIALIZE_ANY"; 
     
     /** Type metadata about this class for XML deserialization */
     protected TypeDesc typeDesc = null;
@@ -212,14 +214,17 @@
         Deserializer dSer = null;
         MessageContext messageContext = context.getMessageContext();
         if (propDesc == null && !messageContext.isEncoded()) {
-            // try to put unknown elements into an Object[] property
+            // try to put unknown elements into an Object property
             propDesc = getObjectPropertyDesc(elemQName, context);
             if (propDesc != null) {
-                dSer = context.getDeserializerForType(elemQName);
+                Boolean deserializeAny =  (Boolean) messageContext.getProperty(DESERIALIZE_ANY);
+                if ((deserializeAny != null) && (deserializeAny.booleanValue())) {
+                  dSer = context.getDeserializerForType(elemQName);
+                }
                 if (dSer == null)  {
                     qn = Constants.XSD_ANYTYPE;
                     // make sure that the Element Deserializer deserializes the current element and not the child
-                    messageContext.setProperty("DeserializeCurrentElement", Boolean.TRUE);
+                    messageContext.setProperty(ElementDeserializer.DESERIALIZE_CURRENT_ELEMENT, Boolean.TRUE);
                 } else {
                     qn = elemQName;
                 }
Index: org/apache/axis/encoding/ser/ElementDeserializer.java
===================================================================
RCS file: /home/cvspublic/xml-axis/java/src/org/apache/axis/encoding/ser/ElementDeserializer.java,v
retrieving revision 1.4
diff -u -r1.4 ElementDeserializer.java
--- org/apache/axis/encoding/ser/ElementDeserializer.java	7 May 2002 16:08:50 -0000	1.4
+++ org/apache/axis/encoding/ser/ElementDeserializer.java	10 May 2002 00:40:41 -0000
@@ -92,6 +92,8 @@
     protected static Log log =
         LogFactory.getLog(ElementDeserializer.class.getName());
 
+   public static final String DESERIALIZE_CURRENT_ELEMENT = "DESERIALIZE_CURRENT_ELEMENT";
+
     public final void onEndElement(String namespace, String localName,
                                    DeserializationContext context)
         throws SAXException
@@ -100,10 +102,10 @@
             MessageElement msgElem = context.getCurElement();
             if ( msgElem != null ) {
                 MessageContext messageContext = context.getMessageContext();
-                Boolean currentElement = (Boolean) messageContext.getProperty("DeserializeCurrentElement");
+                Boolean currentElement = (Boolean) messageContext.getProperty(DESERIALIZE_CURRENT_ELEMENT);
                 if (currentElement != null && currentElement.booleanValue()) {
                     value = msgElem.getAsDOM();
-                    messageContext.setProperty("SerializeCurrentElement", Boolean.FALSE);
+                    messageContext.setProperty(DESERIALIZE_CURRENT_ELEMENT, Boolean.FALSE);
                     return;
                 }
                 ArrayList children = msgElem.getChildren();
Index: org/apache/axis/message/RPCHandler.java
===================================================================
RCS file: /home/cvspublic/xml-axis/java/src/org/apache/axis/message/RPCHandler.java,v
retrieving revision 1.37
diff -u -r1.37 RPCHandler.java
--- org/apache/axis/message/RPCHandler.java	9 May 2002 18:25:17 -0000	1.37
+++ org/apache/axis/message/RPCHandler.java	10 May 2002 00:40:44 -0000
@@ -219,10 +219,12 @@
         if ((type == null) && (namespace != null) && (!namespace.equals(""))) {
             dser = context.getDeserializerForType(qname);
         }
-        if ((type != null) && (dser == null)) {
-            dser = context.getDeserializerForType(type);
-        } else {
-            dser = new DeserializerImpl();
+        if (dser == null) {
+          if (type != null) {
+              dser = context.getDeserializerForType(type);
+          } else {
+              dser = new DeserializerImpl();
+          }
         }
 
         if (dser == null) {
