diff --git a/.travis/test.sh b/.travis/test.sh
index 10f6e148716cec7cba770ab0e09bf687729e34d3..62758444059e6ae91079f956f94c17952725ecf7 100644
--- a/.travis/test.sh
+++ b/.travis/test.sh
@@ -8,7 +8,7 @@ then
   TRAVIS_SUDO=""
 fi
 
-# Test AEAD modes in IPSec if available
+# Test AEAD modes in IPsec if available
 if [ "$TEST_COMBINED_MODES" != "yes" ]
 then
   UT_FLAGS+="-K combined_modes "
diff --git a/doc/scapy/installation.rst b/doc/scapy/installation.rst
index 78a4663dc7cc90624f0779aa42a3821e788a6b99..c53866ece900a03e3c36c54d9b4a7141ac36ae24 100644
--- a/doc/scapy/installation.rst
+++ b/doc/scapy/installation.rst
@@ -190,7 +190,7 @@ Here are the topics involved and some examples that you can use to try if your i
  
 * VOIP. ``voip_play()`` needs `SoX <http://sox.sourceforge.net/>`_.
  
-* IPSec Crypto Support. ``SecurityAssociation()`` needs `Pycrypto <https://github.com/dlitz/pycrypto>`_. Combined AEAD modes such as GCM and CCM require pycrypto2.7a1, which is only available from source (no pip or package).
+* IPsec Crypto Support. ``SecurityAssociation()`` needs `Pycrypto <https://github.com/dlitz/pycrypto>`_. Combined AEAD modes such as GCM and CCM require pycrypto2.7a1, which is only available from source (no pip or package).
 
   .. code-block:: text
   
diff --git a/scapy/layers/ipsec.py b/scapy/layers/ipsec.py
index 431bc20aac9d33c0b414432ca0255434e2e53100..c6670d38827134168b65d313a61838f6d8a624e1 100644
--- a/scapy/layers/ipsec.py
+++ b/scapy/layers/ipsec.py
@@ -1,5 +1,5 @@
 #############################################################################
-## ipsec.py --- IPSec support for Scapy                                    ##
+## ipsec.py --- IPsec support for Scapy                                    ##
 ##                                                                         ##
 ## Copyright (C) 2014  6WIND                                               ##
 ##                                                                         ##
@@ -13,7 +13,7 @@
 ## General Public License for more details.                                ##
 #############################################################################
 """
-IPSec layer
+IPsec layer
 ===========
 
 Example of use:
@@ -154,7 +154,7 @@ try:
     from Crypto import Random
 except ImportError:
     # no error if pycrypto is not available but encryption won't be supported
-    warning("IPSec encryption not supported (pycrypto required).")
+    warning("IPsec encryption not supported (pycrypto required).")
     AES = None
     DES = None
     DES3 = None
@@ -166,7 +166,7 @@ try:
     from Crypto.Cipher.AES import MODE_GCM
     from Crypto.Cipher.AES import MODE_CCM
 except ImportError:
-    warning("Combined crypto modes not available for IPSec (pycrypto 2.7a1 required).")
+    warning("Combined crypto modes not available for IPsec (pycrypto 2.7a1 required).")
 
 #------------------------------------------------------------------------------
 def _lcm(a, b):
@@ -180,7 +180,7 @@ def _lcm(a, b):
 
 class CryptAlgo(object):
     """
-    IPSec encryption algorithm
+    IPsec encryption algorithm
     """
 
     def __init__(self, name, cipher, mode, block_size=None, iv_size=None, key_size=None, icv_size=None):
@@ -466,7 +466,7 @@ class IPSecIntegrityError(Exception):
 
 class AuthAlgo(object):
     """
-    IPSec integrity algorithm
+    IPsec integrity algorithm
     """
 
     def __init__(self, name, mac, digestmod, icv_size, key_size=None):
@@ -508,7 +508,7 @@ class AuthAlgo(object):
 
     def sign(self, pkt, key):
         """
-        Sign an IPSec (ESP or AH) packet with this algo.
+        Sign an IPsec (ESP or AH) packet with this algo.
 
         @param pkt:    a packet that contains a valid encrypted ESP or AH layer
         @param key:    the authentication key, a byte string
@@ -619,7 +619,7 @@ def split_for_transport(orig_pkt, transport_proto):
     header.
 
     @param orig_pkt: the packet to split. Must be an IP or IPv6 packet
-    @param transport_proto: the IPSec protocol number that will be inserted
+    @param transport_proto: the IPsec protocol number that will be inserted
                             at the split position.
     @return: a tuple (header, nh, payload) where nh is the protocol number of
              payload.
@@ -744,7 +744,7 @@ def zero_mutable_fields(pkt, sending=False):
 #------------------------------------------------------------------------------
 class SecurityAssociation(object):
     """
-    This class is responsible of "encryption" and "decryption" of IPSec packets.
+    This class is responsible of "encryption" and "decryption" of IPsec packets.
     """
 
     SUPPORTED_PROTOS = (IP, IPv6)
@@ -752,7 +752,7 @@ class SecurityAssociation(object):
     def __init__(self, proto, spi, seq_num=1, crypt_algo=None, crypt_key=None,
                  auth_algo=None, auth_key=None, tunnel_header=None, nat_t_header=None):
         """
-        @param proto: the IPSec proto to use (ESP or AH)
+        @param proto: the IPsec proto to use (ESP or AH)
         @param spi: the Security Parameters Index of this SA
         @param seq_num: the initial value for the sequence number on encrypted
                         packets