diff --git a/src/portpicker.py b/src/portpicker.py
index 751174d..5ea9f0c 100755
--- a/src/portpicker.py
+++ b/src/portpicker.py
@@ -97,7 +97,7 @@
   port = None
   # Provide access to the portserver on an opt-in basis.
   if 'PORTSERVER_ADDRESS' in os.environ:
-    port = _GetPortFromPortServer(os.environ['PORTSERVER_ADDRESS'], pid=pid)
+    port = GetPortFromPortServer(os.environ['PORTSERVER_ADDRESS'], pid=pid)
   if not port:
     return _PickUnusedPortWithoutServer()
   return port
@@ -132,7 +132,7 @@
       return port
 
 
-def _GetPortFromPortServer(portserver_address, pid=None):
+def GetPortFromPortServer(portserver_address, pid=None):
   """Request a free a port from a system-wide portserver.
 
   This follows a very simple portserver protocol:
@@ -140,7 +140,7 @@
   The response is a port number and a newline, 0 on failure.
 
   This function is an implementation detail of PickUnusedPort(), and
-  should not be called by code outside of this module.
+  should not normally be called by code outside of this module.
 
   Args:
     portserver_address: The address (path) of a unix domain socket
diff --git a/src/tests/portpicker_test.py b/src/tests/portpicker_test.py
index d711329..bf800cd 100755
--- a/src/tests/portpicker_test.py
+++ b/src/tests/portpicker_test.py
@@ -65,9 +65,9 @@
   @unittest.skipIf('PORTSERVER_ADDRESS' not in os.environ,
                    'no port server to test against')
   def testGetPortFromPortServer(self):
-    """Exercise the _GetPortFromPortServer() helper function."""
+    """Exercise the GetPortFromPortServer() helper function."""
     for _ in range(10):
-      port = portpicker._GetPortFromPortServer(os.environ['PORTSERVER_ADDRESS'])
+      port = portpicker.GetPortFromPortServer(os.environ['PORTSERVER_ADDRESS'])
       self.assertTrue(self.IsUnusedTCPPort(port))
       self.assertTrue(self.IsUnusedUDPPort(port))
 
@@ -75,7 +75,7 @@
     server = mock.Mock()
     server.recv.return_value = b'42768\n'
     with mock.patch.object(socket, 'socket', return_value=server):
-      port = portpicker._GetPortFromPortServer('portserver', pid=1234)
+      port = portpicker.GetPortFromPortServer('portserver', pid=1234)
       server.sendall.assert_called_once_with(b'1234\n')
     self.assertEqual(port, 42768)
 
@@ -84,7 +84,7 @@
     server.recv.return_value = b'52768\n'
     with mock.patch.object(socket, 'socket', return_value=server):
       with mock.patch.object(os, 'getpid', return_value=9876):
-        port = portpicker._GetPortFromPortServer('portserver')
+        port = portpicker.GetPortFromPortServer('portserver')
         server.sendall.assert_called_once_with(b'9876\n')
     self.assertEqual(port, 52768)
 
