#1344: document that you need to open std{in,out,err} with PIPE if you want
communicate() to work as described.
diff --git a/Doc/library/subprocess.rst b/Doc/library/subprocess.rst
index 64bc70b..17242c4 100644
--- a/Doc/library/subprocess.rst
+++ b/Doc/library/subprocess.rst
@@ -195,7 +195,12 @@
 
    communicate() returns a tuple (stdout, stderr).
 
-   .. note::
+   Note that if you want to send data to the process's stdin, you need to create
+   the Popen object with ``stdin=PIPE``.  Similarly, to get anything other than
+   ``None`` in the result tuple, you need to give ``stdout=PIPE`` and/or
+   ``stderr=PIPE`` too.
+
+.. note::
 
       The data read is buffered in memory, so do not use this method if the data size
       is large or unlimited.