diff --git a/extensions/ARB/ARB_direct_state_access.txt b/extensions/ARB/ARB_direct_state_access.txt
index 3abb181..df8d13e 100644
--- a/extensions/ARB/ARB_direct_state_access.txt
+++ b/extensions/ARB/ARB_direct_state_access.txt
@@ -36,8 +36,8 @@
 
 Version
 
-    Last Modified Date:         July 23, 2017
-    Author Revision:            49
+    Last Modified Date:         June 14, 2018
+    Author Revision:            50
 
 Number
 
@@ -3051,7 +3051,7 @@
         void streamChunks(const Chunks & chunks)
         {
             GLuint restore = 0;
-            glGetIntegerv(GL_ARRAY_BUFFER_BINDING, restaure)
+            glGetIntegerv(GL_ARRAY_BUFFER_BINDING, restore)
             glBindBuffer(GL_ARRAY_BUFFER, chunks.buffer());
 
             uint8* pointer = reinterpret_cast<uint8*>(glMapBufferRange(
@@ -3173,8 +3173,8 @@
           GLuint vertexArrayName = 0;
           glCreateVertexArrays(1, &vertexArrayName);
 
-          glEnableVertexAttribArray(VertexArrayName, semantic::attr::POSITION);
-          glEnableVertexAttribArray(VertexArrayName, semantic::attr::TEXCOORD);
+          glEnableVertexArrayAttrib(VertexArrayName, semantic::attr::POSITION);
+          glEnableVertexArrayAttrib(VertexArrayName, semantic::attr::TEXCOORD);
 
           glVertexArrayAttribBinding(VertexArrayName, semantic::attr::POSITION, 0);
           glVertexArrayAttribFormat(VertexArrayName, semantic::attr::POSITION, 2, GL_FLOAT, GL_FALSE, 0);
@@ -3560,12 +3560,12 @@
         Is the logical equivalent to:
 
         // Bind to Edit
-        uint restaureBuffer;
-        GetIntegerv(ARRAY_BUFFER_BINDING, &restaureBuffer);
+        uint restoreBuffer;
+        GetIntegerv(ARRAY_BUFFER_BINDING, &restoreBuffer);
         uint buffer;
         GenBuffers(1, &buffer);
         BindBuffer(ARRAY_BUFFER, buffer);
-        BindBuffer(ARRAY_BUFFER, restaureBuffer);
+        BindBuffer(ARRAY_BUFFER, restoreBuffer);
 
         Typically with DSA objects are created with [Create] while [Gen+Bind]
         is used to create the objects with B2E. Unfortunately, [Gen+Bind]
@@ -4146,6 +4146,9 @@
 
     Rev.    Date        Author    Changes
     ----  -----------   --------- ---------------------------------------------
+    50    14 Jun 2018   T. Karras Use English variable names and fix API usage
+                                  in examples.
+
     49    23 Jul 2017   Jon Leech Replace the long list of valid <target>
                                   parameters for BeginQueryIndexed,
                                   EndQueryIndexed, and GetQueryIndexediv
diff --git a/extensions/EXT/EXT_texture_filter_anisotropic.txt b/extensions/EXT/EXT_texture_filter_anisotropic.txt
index 456e856..798f6a6 100644
--- a/extensions/EXT/EXT_texture_filter_anisotropic.txt
+++ b/extensions/EXT/EXT_texture_filter_anisotropic.txt
@@ -13,7 +13,7 @@
 
 Version
 
-    Last updated November 12, 2014
+    Last updated May 23, 2018
 
 Number
 
@@ -275,8 +275,21 @@
                                                                     maximum degree
                                                                     of anisotropy
 
+Issues
+
+  1) Should TEXTURE_MAX_ANISOTROPY_EXT be accepted by SamplerParameter*?
+
+  Yes, for implementations supporting sampler objects. The per-texture sampling
+  state is overridden by the sampler object state, if present. The anisotropy
+  parameter should not be an exception, as this would reduce the usefulness of
+  sampler objects when anisotropic filtering is supported. This also matches
+  the interaction described in ARB_sampler_objects, and the same behavior is
+  still expected for API versions with core support for sampler objects.
+
 Revision History
 
+  2018-05-23 (Nicolas Capens) - clarify interaction with sampler objects.
+
   11/12/14 (Jon Leech) - Fix spelling of TEXTURE_MAX_ANISOTROPY 
   (public Bug 1263).
 
diff --git a/index_sc.php b/index_sc.php
index d991636..c26f52a 100644
--- a/index_sc.php
+++ b/index_sc.php
@@ -62,22 +62,6 @@
      (June 6, 2005). </li>
 </ul>
 
-<h2> <a name="specfiles"></a> XML API Registry of Reserved Enumerants
-     and Functions</h2>
-
-<p> The API Registry is a set of XML documents defining the APIs and
-    enumerants used in OpenGL, OpenGL ES, OpenGL SC, EGL, and related APIs,
-    as well as enumerant ranges reserved to vendors but not used yet. There
-    are also scripts for loading the XML and processing it into header
-    files. All documents in the registry are available from the Khronos
-    Subversion server using <a
-    href="https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/">
-    anonymous public access. </a> Start with the <a
-    href="https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/readme.pdf">
-    README </a>. </p>
-
-<hr>
-
 <?php include_once("../../assets/static_pages/khr_page_bottom.php"); ?>
 </body>
 </html>
