Index: src/test/java/org/codehaus/plexus/util/xml/pull/MXParserTest.java
===================================================================
--- src/test/java/org/codehaus/plexus/util/xml/pull/MXParserTest.java	(revision 3179)
+++ src/test/java/org/codehaus/plexus/util/xml/pull/MXParserTest.java	(working copy)
@@ -114,4 +114,47 @@
 
         assertEquals( XmlPullParser.END_TAG, parser.next() );
     }
+    
+    public void testGetText()
+        throws Exception
+    {
+        MXParser parser = new MXParser();
+        
+        String EOL = System.getProperty( "line.separator" );
+        String[] testText = { "" + '\n' + '\n' + '\n',
+            "" + '\n' + '\n' + '\r',
+            "" + '\n' + '\n' + '\r' + '\n',
+            "" + '\n' + '\r' + '\r',
+            "" + '\n' + '\r' + '\r' + '\n',
+            "" + '\n' + '\r' + '\n' + '\n',
+            "" + '\n' + '\r' + '\n' + '\r',
+            "" + '\n' + '\r' + '\n' + '\r' + '\n',
+            "" + '\r' + '\r' + '\r',
+            "" + '\r' + '\r' + '\r' + '\n',
+            "" + '\r' + '\r' + '\n' + '\n',
+            "" + '\r' + '\r' + '\n' + '\r',
+            "" + '\r' + '\r' + '\n' + '\r' + '\n',
+            "" + '\r' + '\n' + '\n' + '\n',
+            "" + '\r' + '\n' + '\n' + '\r',
+            "" + '\r' + '\n' + '\n' + '\r' + '\n',
+            "" + '\r' + '\n' + '\r' + '\r',
+            "" + '\r' + '\n' + '\r' + '\r' + '\n',
+            "" + '\r' + '\n' + '\r' + '\n' + '\n',
+            "" + '\r' + '\n' + '\r' + '\n' + '\r',
+            "" + '\r' + '\n' + '\r' + '\n' + '\r' + '\n' };
+        String expectedText = "" + EOL + EOL + EOL;
+
+        for ( int i = 0; i < testText.length; i++ )
+        {
+            String input = "<dummy-tag>" + testText[i] + "</dummy-tag>";
+            parser.setInput( new StringReader( input ) );
+            
+            assertEquals( XmlPullParser.START_TAG, parser.next() );
+    
+            assertEquals( XmlPullParser.TEXT, parser.next() );
+            assertEquals( expectedText, parser.getText() );
+            
+            assertEquals( XmlPullParser.END_TAG, parser.next() );
+        }
+    }
 }
Index: src/main/java/org/codehaus/plexus/util/xml/pull/MXParser.java
===================================================================
--- src/main/java/org/codehaus/plexus/util/xml/pull/MXParser.java	(revision 3179)
+++ src/main/java/org/codehaus/plexus/util/xml/pull/MXParser.java	(working copy)
@@ -745,6 +745,32 @@
                 text = new String(pc, pcStart, pcEnd - pcStart);
             }
         }
+        
+        /*
+         * Replace all EOL's in the file with the EOL the system uses. 
+         */
+        String newText = "";
+        for ( int i = 0; i < text.length(); i++)
+        {
+            if ( text.charAt(i) == '\r' )
+            {
+                if ( (i + 1) < text.length() && text.charAt( i + 1 ) == '\n' )
+                {
+                    i++;
+                }
+                newText += System.getProperty( "line.separator" );
+            }
+            else if ( text.charAt(i) == '\n' )
+            {
+                newText += System.getProperty( "line.separator" );
+            }
+            else
+            {
+                newText += text.charAt( i );
+            }
+        }
+        text = newText;
+        
         return text;
     }
     

