Index: django/template/base.py
===================================================================
--- django/template/base.py	(révision 17175)
+++ django/template/base.py	(copie de travail)
@@ -250,15 +250,15 @@
                 var_node = self.create_variable_node(filter_expression)
                 self.extend_nodelist(nodelist, var_node, token)
             elif token.token_type == TOKEN_BLOCK:
-                if token.contents in parse_until:
+                try:
+                    command = token.contents.split()[0]
+                except IndexError:
+                    self.empty_block_tag(token)
+                if command in parse_until:
                     # put token back on token list so calling
                     # code knows why it terminated
                     self.prepend_token(token)
                     return nodelist
-                try:
-                    command = token.contents.split()[0]
-                except IndexError:
-                    self.empty_block_tag(token)
                 # execute callback function for this tag and append
                 # resulting node
                 self.enter_command(command, token)
Index: django/template/loader_tags.py
===================================================================
--- django/template/loader_tags.py	(révision 17175)
+++ django/template/loader_tags.py	(copie de travail)
@@ -189,8 +189,14 @@
         parser.__loaded_blocks.append(block_name)
     except AttributeError: # parser.__loaded_blocks isn't a list yet
         parser.__loaded_blocks = [block_name]
-    nodelist = parser.parse(('endblock', 'endblock %s' % block_name))
-    parser.delete_first_token()
+    nodelist = parser.parse(('endblock',))
+
+    # This check is kept for backwards-compatibility. See #3100.
+    endblock = parser.next_token()
+    acceptable_endblocks = ('endblock', 'endblock %s' % block_name)
+    if endblock.contents not in acceptable_endblocks:
+        parser.invalid_block_tag(endblock, 'endblock', acceptable_endblocks)
+
     return BlockNode(block_name, nodelist)
 
 @register.tag('extends')
