diff --git a/Lib/doctest.py b/Lib/doctest.py
index 32d076a..d609c5d 100644
--- a/Lib/doctest.py
+++ b/Lib/doctest.py
@@ -209,7 +209,10 @@
         filename = _module_relative_path(package, filename)
         if hasattr(package, '__loader__'):
             if hasattr(package.__loader__, 'get_data'):
-                return package.__loader__.get_data(filename), filename
+                file_contents = package.__loader__.get_data(filename)
+                # get_data() opens files as 'rb', so one must do the equivalent
+                # conversion as universal newlines would do.
+                return file_contents.replace(os.linesep, '\n'), filename
     return open(filename).read(), filename
 
 def _indent(s, indent=4):
diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py
index e8379c5..c3d1bd8 100644
--- a/Lib/test/test_doctest.py
+++ b/Lib/test/test_doctest.py
@@ -1908,6 +1908,24 @@
          >>> suite.run(unittest.TestResult())
          <unittest.TestResult run=3 errors=0 failures=3>
 
+       Support for using a package's __loader__.get_data() is also
+       provided.
+
+         >>> import unittest, pkgutil, test
+         >>> if not hasattr(test, '__loader__'):
+         ...     test.__loader__ = pkgutil.get_loader(test)
+         ...     added_loader = True
+         >>> try:
+         ...     suite = doctest.DocFileSuite('test_doctest.txt',
+         ...                                  'test_doctest2.txt',
+         ...                                  'test_doctest4.txt',
+         ...                                  package='test')
+         ...     suite.run(unittest.TestResult())
+         ... finally:
+         ...     if added_loader:
+         ...         del test.__loader__
+         <unittest.TestResult run=3 errors=0 failures=3>
+
        '/' should be used as a path separator.  It will be converted
        to a native separator at run time:
 
