not interchangeable => not compatible
I think this way it makes much more sense...
diff --git a/xml/readme.tex b/xml/readme.tex
index f39558a..2ced81f 100644
--- a/xml/readme.tex
+++ b/xml/readme.tex
@@ -540,7 +540,7 @@
       a length that is computed as a combination of other command
       parameter values, and possibly current GL state as well.
 \item \attr{class} - an arbitrary string, defining type of object name (object handle).
-      Handles with different types are not interchangeable. So handle created as
+      Handles with different types are not compatible. So handle created as
       \attr{class=buffer} can not be passed to \attr{class=shader}.
 \end{itemize}
 
diff --git a/xml/registry.rnc b/xml/registry.rnc
index e92876a..fba9773 100644
--- a/xml/registry.rnc
+++ b/xml/registry.rnc
@@ -123,7 +123,7 @@
 # <command> defines a single command
 #   <proto> is the C function prototype, including the return type
 #   <param> are function parameters, in order
-#     class - type of object name (object handle). Handles with different types are not interchangeable. So handle created as [class=buffer] can not be passed to [class=shader]
+#     class - type of object name (object handle). Handles with different types are not compatible. So handle created as [class=buffer] can not be passed to [class=shader]
 #     <ptype> is a <type> name, if present
 #     <name> is the function / parameter name
 # The textual contents of <proto> and <param> should be legal C