diff --git a/doc/51Degrees-device-detection.txt b/doc/51Degrees-device-detection.txt
index c30cb33..381008a 100644
--- a/doc/51Degrees-device-detection.txt
+++ b/doc/51Degrees-device-detection.txt
@@ -87,7 +87,7 @@
 and X-51D-Tablet. Any number of headers can be created this way and can be
 named anything. 51d.all( ) invokes the 51degrees fetch. It can be passed up to
 five property names of values to return. Values will be returned in the same
-order, seperated by the 51-degrees-property-separator configured earlier. If a
+order, separated by the 51-degrees-property-separator configured earlier. If a
 property name can't be found the value 'NoData' is returned instead.
 
 In addition to the device properties three additional properties related to the
diff --git a/doc/SPOE.txt b/doc/SPOE.txt
index 2b4cc3b..59cbafe 100644
--- a/doc/SPOE.txt
+++ b/doc/SPOE.txt
@@ -146,7 +146,7 @@
 same anonymous and implicit scope.
 
 The engine name must be uniq for a proxy. If no engine name is provided on the
-SPOE filter line, the SPOE agent name is unsed by default.
+SPOE filter line, the SPOE agent name is used by default.
 
 2.2. "spoe-agent" section
 --------------------------
@@ -192,7 +192,7 @@
   Arguments :
     <grp-name>   is the name of a SPOE group.
 
-  Groups delcared here must be found in the same engine scope, else an error is
+  Groups declared here must be found in the same engine scope, else an error is
   triggered during the configuration parsing. You can have many "groups" lines.
 
   See also: "spoe-group" section.
@@ -501,7 +501,7 @@
 
   When the message is processed, if a sample expression is not available, it is
   set to NULL. Arguments are processed in their declaration order and added in
-  the message in that order. It is possible to declare named arguements.
+  the message in that order. It is possible to declare named arguments.
 
   For example:
     args frontend=fe_id src dst
@@ -717,7 +717,7 @@
            payload. When it is set, the FIN bit must also be set.
 
 
-Frames cannot exceed a maximum size negociated between HAProxy and agents
+Frames cannot exceed a maximum size negotiated between HAProxy and agents
 during the HELLO handshake. Most of time, payload will be small enough to send
 it in one frame. But when supported by the peer, it will be possible to
 fragment huge payload on many frames. This ability is announced during the
@@ -1182,7 +1182,7 @@
                 will disable it for the transaction (request and response).
                 See 'option continue-on-error' to bypass this limitation.
 
-To avoid a stream to wait infinitly, you must carefully choose the
+To avoid a stream to wait undefinetly, you must carefully choose the
 acknowledgement timeout. In most of cases, it will be quiet low. But it depends
 on the responsivness of your service.
 
@@ -1219,7 +1219,7 @@
                  fragmented frames, it is the sum of all fragments.
         * qT   : the delay before the request gets out the sending queue. For
                  fragmented frames, it is the sum of all fragments.
-        * wT   : the delay before the reponse is received. No fragmentation
+        * wT   : the delay before the response is received. No fragmentation
                  supported here.
         * resT : the delay to process the response. No fragmentation supported
                  here.
diff --git a/doc/architecture.txt b/doc/architecture.txt
index 0c26038..85d5219 100644
--- a/doc/architecture.txt
+++ b/doc/architecture.txt
@@ -509,7 +509,7 @@
 servers (freeing even more resources) and installed on the load-balancer
 itself. Install haproxy and apache+mod_ssl on the old box which will spread the
 load between the new boxes. Apache will work in SSL reverse-proxy-cache. If the
-application is correctly developped, it might even lower its load. However,
+application is correctly developed, it might even lower its load. However,
 since there now is a cache between the clients and haproxy, some security
 measures must be taken to ensure that inserted cookies will not be cached.
 
diff --git a/doc/close-options.txt b/doc/close-options.txt
index 7790937..5f1c9d9 100644
--- a/doc/close-options.txt
+++ b/doc/close-options.txt
@@ -10,7 +10,7 @@
 Options can be split between frontend and backend, so some of them might have
 a meaning only when combined by associating a frontend to a backend. Some forms
 are not the normal ones and provide a behaviour compatible with another normal
-form. Those are considered alternate forms and are markes "(alt)".
+form. Those are considered alternate forms and are marked "(alt)".
 
 FC SC HC PK    Behaviour
  0  0  0  X    tunnel mode
diff --git a/doc/coding-style.txt b/doc/coding-style.txt
index d6998dd..5f252ed 100644
--- a/doc/coding-style.txt
+++ b/doc/coding-style.txt
@@ -525,7 +525,7 @@
 there are no parenthesis. Most people do not really care as long as what
 is written is unambiguous.
 
-Braces opening a block must be preceeded by one space unless the brace is
+Braces opening a block must be preceded by one space unless the brace is
 placed on the first column :
 
 Right :
@@ -811,7 +811,7 @@
   | if ((fd = open(file, O_RDONLY)) < 0)
   |         return -1;
 
-This is wrong. The man page says that -1 is returned if an error occured. It
+This is wrong. The man page says that -1 is returned if an error occurred. It
 does not suggest that any other negative value will be an error. It is possible
 that a few such issues have been left in existing code. They are bugs for which
 fixes are accepted, eventhough they're currently harmless since open() is not
@@ -853,7 +853,7 @@
 comma if it is planned that new elements might later be added, this will make
 later patches shorter. Conversely, if the last element is placed in order to
 get the number of possible values, it must not be followed by a comma and must
-be preceeded by a comment :
+be preceded by a comment :
 
   | enum {
   |         first = 0,
diff --git a/doc/configuration.txt b/doc/configuration.txt
index d1606af..3d4661b 100644
--- a/doc/configuration.txt
+++ b/doc/configuration.txt
@@ -11243,7 +11243,7 @@
   in haproxy -vv.
   Idea behind this optipon is to bypass the selection of the best multiplexer's
   protocol for all connections instantiated from this listening socket. For
-  instance, it is possible to force the http/2 on clear TCP by specifing "proto
+  instance, it is possible to force the http/2 on clear TCP by specifying "proto
   h2" on the bind line.
 
 ssl
diff --git a/doc/cookie-options.txt b/doc/cookie-options.txt
index 8956a47..b3badf3 100644
--- a/doc/cookie-options.txt
+++ b/doc/cookie-options.txt
@@ -13,7 +13,7 @@
  0   0   1   0   1    insert + indirect : remove req and also resp if not needed
  *   *   1   1   *    [ forbidden ]
  0   1   0   0   0    prefix
- 0   1   0   0   1    !! prefix on request, remove reponse cookie if not needed
+ 0   1   0   0   1    !! prefix on request, remove response cookie if not needed
  *   1   *   1   *    [ forbidden ]
  *   1   1   *   *    [ forbidden ]
  *   *   *   1   1    [ forbidden ]
diff --git a/doc/lua.txt b/doc/lua.txt
index d513a67..dcb9b8f 100644
--- a/doc/lua.txt
+++ b/doc/lua.txt
@@ -35,7 +35,7 @@
 modify the HAProxy source code, but to write their own control code. Lua is
 encountered very often in the software industry, and in some open source
 projects. It is easy to understand, efficient, light without external
-dependancies, and leaves the resource control to the implementation. Its design
+dependencies, and leaves the resource control to the implementation. Its design
 is close to the HAProxy philosophy which uses components for what they do
 perfectly.
 
@@ -473,7 +473,7 @@
 before the last Lua execution.
 
 Lua can immediately stop its execution if an error occurs. This system uses also
-the longjmp system. In HAProxy, we try to use this sytem only for unrecoverable
+the longjmp system. In HAProxy, we try to use this system only for unrecoverable
 errors. Maybe some trivial errors target an exception, but we try to remove it.
 
 It seems that Lua uses the longjmp system for having a behaviour like the java
@@ -917,7 +917,7 @@
 HTTP actions
 ============
 
-   ... comming soon ...
+   ... coming soon ...
 
 Lua is fast, but my service require more execution speed
 ========================================================
diff --git a/doc/management.txt b/doc/management.txt
index eaa6b5f..885ff2c 100644
--- a/doc/management.txt
+++ b/doc/management.txt
@@ -1286,7 +1286,7 @@
     # echo "show info;show stat;show table" | socat /var/run/haproxy stdio
 
 If a command needs to use a semi-colon or a backslash (eg: in a value), it
-must be preceeded by a backslash ('\').
+must be preceded by a backslash ('\').
 
 The interactive mode displays a prompt ('>') and waits for commands to be
 entered on the line, then processes them, and displays the prompt again to wait
diff --git a/doc/peers-v2.0.txt b/doc/peers-v2.0.txt
index 6812c85..841436d 100644
--- a/doc/peers-v2.0.txt
+++ b/doc/peers-v2.0.txt
@@ -110,7 +110,7 @@
 
 a) Protocol Message
 
-To signal that a protocol error occured. Connection will be shutdown just after sending this message.
+To signal that a protocol error occurred. Connection will be shutdown just after sending this message.
 
 b) Size Limit Error Message
 
@@ -248,9 +248,9 @@
 
 
 Remote Table Id is the numeric identifier of the table on the remote side.
-Update Id is the id of the last update locally commited.
+Update Id is the id of the last update locally committed.
 
-If a re-connection occured, the sender should know he will have to restart the push of updates from this point.
+If a re-connection occurred, the sender should know he will have to restart the push of updates from this point.
 
 III) Initial full resync process.
 
diff --git a/doc/peers.txt b/doc/peers.txt
index f308f8c..4187a4e 100644
--- a/doc/peers.txt
+++ b/doc/peers.txt
@@ -118,13 +118,13 @@
            return bitf
 
        set the next byte of bitf to the value of val OR'ed with 0xf0
-       substract 0xf0 from val
+       subtract 0xf0 from val
        right shift val by 4
 
        while val bit 7 is set (or if val is greater or equal to 0x80):
            set the next byte of bitf to the value of the byte made of the last
                7 bits of val OR'ed with 0x80
-           substract 0x80 from val
+           subtract 0x80 from val
            right shift val by 7
 
        set the next byte of bitf to the value of val
@@ -152,7 +152,7 @@
      "set the next byte of bitf to the value of val OR'ed with 0xf0"
      => bitf[0] = (0x1234 | 0xf0) & 0xff = 0xf4
 
-     "substract 0xf0 from val"
+     "subtract 0xf0 from val"
      => val = 0x1144
 
      right shift val by 4
@@ -162,7 +162,7 @@
      7 bits of val OR'ed with 0x80"
      => bitf[1] = (0x114 | 0x80) & 0xff = 0x94
 
-     "substract 0x80 from val"
+     "subtract 0x80 from val"
      => val= 0x94
 
      "right shift val by 7"
@@ -292,7 +292,7 @@
      entry update messages for different stick-tables may be sent over the same
      peer session.
 
-     To do so, each time entry update messages have to sent, they must be preceeded
+     To do so, each time entry update messages have to sent, they must be preceded
      by a stick-table definition message. This remains true for incremental entry
      update messages.
 
diff --git a/doc/regression-testing.txt b/doc/regression-testing.txt
index 1b8cdb2..2a96b0c 100644
--- a/doc/regression-testing.txt
+++ b/doc/regression-testing.txt
@@ -264,7 +264,7 @@
       cat ${tmpdir}/h1/cfg
     }
 
-We give only the ouput of the shell to illustrate this example:
+We give only the output of the shell to illustrate this example:
 
     .
     .
@@ -382,7 +382,7 @@
     #    requiring LW_BYTES is set), the log is emitted after the connection is
     #    closed, so the address and ports cannot be retrieved anymore.
     #
-    #    It could be argued that we'd make a special case of these to immediatly
+    #    It could be argued that we'd make a special case of these to immediately
     #    retrieve the source and destination addresses from the connection, but it
     #    seems cleaner to simply pin the front connection, marking it "tracked" by
     #    adding the LW_XPRT flag to mention that we'll need some of these elements
