diff --git a/docs/CONTRIBUTE b/docs/CONTRIBUTE
index 92e0af8235116996bcad14a5b10305aa9b1f0440..ac4222b5d8431f43e163dfc61097e5106e676d49 100644
--- a/docs/CONTRIBUTE
+++ b/docs/CONTRIBUTE
@@ -42,7 +42,8 @@ Naming
  understandable and be named according to what they're used for. File-local
  functions should be made static. We like lower case names.
 
- See the INTERNALS document on how we name non-exported library-global symbols.
+ See the INTERNALS document on how we name non-exported library-global
+ symbols.
 
 Indenting
 
@@ -55,7 +56,7 @@ Indenting
 
 Commenting
 
- Comment your source code extensively using C comments (/* comment */), do not
+ Comment your source code extensively using C comments (/* comment */), DO NOT
  use C++ comments (// this style). Commented code is quality code and enables
  future modifications much more. Uncommented code much more risk being
  completely replaced when someone wants to extend things, since other persons'
@@ -64,7 +65,7 @@ Commenting
 General Style
 
  Keep your functions small. If they're small you avoid a lot of mistakes and
- you don't accidentally mix up variables.
+ you don't accidentally mix up variables etc.
 
 Non-clobbering All Over
 
@@ -78,11 +79,11 @@ Non-clobbering All Over
 Platform Dependent Code
 
  Use #ifdef HAVE_FEATURE to do conditional code. We avoid checking for
- particular operting systems or hardware in the #ifdef lines. The HAVE_FEATURE
- shall be generated by the configure script for unix-like systems and they are
- hard-coded in the config-[system].h files for the others.
+ particular operating systems or hardware in the #ifdef lines. The
+ HAVE_FEATURE shall be generated by the configure script for unix-like systems
+ and they are hard-coded in the config-[system].h files for the others.
 
-Separate Patches Doing Different Things
+Separate Patches
 
  It is annoying when you get a huge patch from someone that is said to fix 511
  odd problems, but discussions and opinions don't agree with 510 of them - or
@@ -128,3 +129,21 @@ Test Cases
  in the test suite. Every feature that is added should get at least one valid
  test case that verifies that it works as documented. If every submitter also
  post a few test cases, it won't end up as a heavy burden on a single person!
+
+How To Make a Patch
+
+ Keep a copy of the unmodified curl sources. Make your changes in a separate
+ source tree. When you think you have something that you want to offer the
+ curl community, use GNU diff to generate patches.
+
+ If you have modified a single file, try something like:
+
+     diff -u undmodified-file.c my-changed-one.c > my-fixes.diff
+
+ If you have modified several files, possibly in different directories, you
+ can use diff recursively:
+
+     diff -ur curl-original-dir curl-modfied-sources-dir > my-fixes.diff
+
+ GNU diff exists for virtually all platforms, including all kinds of unixes
+ and Windows.