diff --git a/docs/hazmat/primitives/symmetric-encryption.rst b/docs/hazmat/primitives/symmetric-encryption.rst
index a683bb9..86267a2 100644
--- a/docs/hazmat/primitives/symmetric-encryption.rst
+++ b/docs/hazmat/primitives/symmetric-encryption.rst
@@ -364,8 +364,6 @@
             Cipher, algorithms, modes
         )
 
-        from cryptography.hazmat.primitives.padding import PKCS7
-
         def encrypt(key, plaintext, associated_data):
             # Generate a random 96-bit IV.
             iv = os.urandom(12)
@@ -378,17 +376,13 @@
                 backend=default_backend()
             ).encryptor()
 
-            # We have to pad our plaintext because it may not be a
-            # multiple of the block size.
-            padder = PKCS7(algorithms.AES.block_size).padder()
-            padded_plaintext = padder.update(plaintext) + padder.finalize()
-
             # associated_data will be authenticated but not encrypted,
             # it must also be passed in on decryption.
             encryptor.authenticate_additional_data(associated_data)
 
             # Encrypt the plaintext and get the associated ciphertext.
-            ciphertext = encryptor.update(padded_plaintext) + encryptor.finalize()
+            # GCM does not require padding.
+            ciphertext = encryptor.update(plaintext) + encryptor.finalize()
 
             return (iv, ciphertext, encryptor.tag)
 
@@ -401,17 +395,13 @@
                 backend=default_backend()
             ).decryptor()
 
-            # We will need to unpad the plaintext.
-            unpadder = PKCS7(algorithms.AES.block_size).unpadder()
-
             # We put associated_data back in or the tag will fail to verify
             # when we finalize the decryptor.
             decryptor.authenticate_additional_data(associated_data)
 
-            # Decryption gets us the authenticated padded plaintext.
-            padded_plaintext = decryptor.update(ciphertext) + decryptor.finalize()
-
-            return unpadder.update(padded_plaintext) + unpadder.finalize()
+            # Decryption gets us the authenticated plaintext.
+            # If the tag does not match an InvalidTag exception will be raised.
+            return decryptor.update(ciphertext) + decryptor.finalize()
 
         iv, ciphertext, tag = encrypt(
             key,
