--- jalopy/woodstox/src/main/java/wstx/sr/BasicStreamReader.java 
+++ Downloads/woodstox-src.4.0.1/src/java/com/ctc/wstx/sr/BasicStreamReader.java 
@@ -13,14 +13,10 @@
  * limitations under the License.
  */
 
-package wstx.sr;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.Writer;
+package com.ctc.wstx.sr;
+
+import java.io.*;
 import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Map;
 
 import org.xml.sax.Attributes;
@@ -28,34 +24,30 @@
 import org.xml.sax.SAXException;
 import org.xml.sax.ext.LexicalHandler;
 
-import stax.xml.namespace.NamespaceContext;
-import stax.xml.namespace.QName;
-import stax.xml.stream.Location;
-import stax.xml.stream.XMLStreamException;
-import stax2.AttributeInfo;
-import stax2.DTDInfo;
-import stax2.LocationInfo;
-import stax2.XMLStreamLocation2;
-import stax2.XMLStreamReader2;
-import stax2.typed.TypedXMLStreamException;
-import stax2.validation.DTDValidationSchema;
-import stax2.validation.ValidationProblemHandler;
-import stax2.validation.XMLValidationSchema;
-import stax2.validation.XMLValidator;
-import wstx.api.ReaderConfig;
-import wstx.api.WstxInputProperties;
-import wstx.cfg.ErrorConsts;
-import wstx.cfg.XmlConsts;
-import wstx.dtd.MinimalDTDReader;
-import wstx.ent.EntityDecl;
-import wstx.exc.WstxException;
-import wstx.io.BranchingReaderSource;
-import wstx.io.InputBootstrapper;
-import wstx.io.WstxInputSource;
-import wstx.util.DefaultXmlSymbolTable;
-import wstx.util.TextBuffer;
-import wstx.util.TextBuilder;
-
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.namespace.QName;
+import javax.xml.stream.Location;
+import javax.xml.stream.XMLStreamException;
+
+import org.codehaus.stax2.AttributeInfo;
+import org.codehaus.stax2.DTDInfo;
+import org.codehaus.stax2.LocationInfo;
+import org.codehaus.stax2.XMLStreamLocation2;
+import org.codehaus.stax2.XMLStreamReader2;
+import org.codehaus.stax2.typed.TypedXMLStreamException;
+import org.codehaus.stax2.validation.*;
+
+import com.ctc.wstx.api.ReaderConfig;
+import com.ctc.wstx.api.WstxInputProperties;
+import com.ctc.wstx.cfg.ErrorConsts;
+import com.ctc.wstx.cfg.XmlConsts;
+import com.ctc.wstx.dtd.MinimalDTDReader;
+import com.ctc.wstx.ent.EntityDecl;
+import com.ctc.wstx.exc.WstxException;
+import com.ctc.wstx.io.*;
+import com.ctc.wstx.util.DefaultXmlSymbolTable;
+import com.ctc.wstx.util.TextBuffer;
+import com.ctc.wstx.util.TextBuilder;
 
 /**
  * Partial implementation of {@link XMLStreamReader2} consisting of
@@ -1161,7 +1153,7 @@
      *<p>
      * Note: as per StAX 1.0 specs, this method does NOT close the underlying
      * input reader. That is, unless the new StAX2 property
-     * {@link stax2.XMLInputFactory2#P_AUTO_CLOSE_INPUT} is
+     * {@link org.codehaus.stax2.XMLInputFactory2#P_AUTO_CLOSE_INPUT} is
      * set to true.
      */
     public void close()
@@ -1620,7 +1612,7 @@
     }
 
     /**
-     * Method called by {@link wstx.evt.DefaultEventAllocator}
+     * Method called by {@link com.ctc.wstx.evt.DefaultEventAllocator}
      * to get double-indirection necessary for constructing start element
      * events.
      *
@@ -1632,10 +1624,10 @@
         if (mCurrToken != START_ELEMENT) {
             return null;
         }
-
-        return cb.withStartElement(loc, getName(),
-                mElementStack.createNonTransientNsContext(mNsLocations),
-                mAttrCollector.buildAttrOb(), mStEmptyElem);
+        return cb.withStartElement(loc, getName(), 
+                                   mElementStack.createNonTransientNsContext(loc),
+                                   mAttrCollector.buildAttrOb(),
+                                   mStEmptyElem);
     }
 
     public boolean isNamespaceAware() {
@@ -2932,8 +2924,6 @@
         mValidateText = (vld == XMLValidator.CONTENT_ALLOW_VALIDATABLE_TEXT);
     }
 
-    private List mNsLocations;
-
     /**
      * @return True if this is an empty element; false if not
      */
@@ -2943,16 +2933,8 @@
         AttributeCollector ac = mAttrCollector;
 
         while (true) {
-            Location location = getCurrentLocation();
-
             if (c <= CHAR_SPACE) {
-                char t = c;
                 c = getNextInCurrAfterWS(SUFFIX_IN_ELEMENT, c);
-
-                if (t =='\n'|| t=='\r')
-                {
-                    location = getCurrentLocation();
-                }
             } else if (c != '/' && c != '>') {
                 throwUnexpectedChar(c, " excepted space, or '>' or \"/>\"");
             }
@@ -3009,7 +2991,6 @@
 
             if (prefix == sPrefixXmlns) { // non-default namespace declaration
                 tb = ac.getNsBuilder(localName);
-                traceNsLocation(location);
                 // returns null if it's a dupe:
                 if (null == tb) {
                     throwParseError("Duplicate declaration for namespace prefix '"+localName+"'.");
@@ -3017,13 +2998,12 @@
                 startLen = tb.getCharSize();
             } else if (localName == sPrefixXmlns && prefix == null) {
                 tb = ac.getDefaultNsBuilder();
-                traceNsLocation(location);
                 // returns null if default ns was already declared
                 if (null == tb) {
                     throwParseError("Duplicate default namespace declaration.");
                 }
             } else {
-                tb = ac.getAttrBuilder(prefix, localName, location);
+                tb = ac.getAttrBuilder(prefix, localName);
             }
             tb.startNewEntry();
             parseNormalizedAttrValue(c, tb);
@@ -3052,12 +3032,6 @@
         // never gets here
     }
 
-    private void traceNsLocation(Location rLocation)
-    {
-        if (mNsLocations == null) mNsLocations = new ArrayList(4);
-        mNsLocations.add(rLocation);
-    }
-
     /**
      * @return True if this is an empty element; false if not
      */
@@ -3084,9 +3058,8 @@
                 throwParseError("Unexpected '<' character in element (missing closing '>'?)");
             }
 
-            Location location = getCurrentLocation();
             String name = parseFullName(c);
-            TextBuilder tb = ac.getAttrBuilder(null, name, location);
+            TextBuilder tb = ac.getAttrBuilder(null, name);
             c = (mInputPtr < mInputEnd) ?
                 mInputBuffer[mInputPtr++] : getNextCharFromCurrent(SUFFIX_IN_ELEMENT);
             if (c <= CHAR_SPACE) {
