+Arbitrary Lisp functions can no longer be recorded into
+@code{buffer-undo-list}. As a consequence, @code{yank-undo-function}
+is obsolete, and has been removed.
+
+@item
+Emacs will never complain about commands that accumulate too much undo
+information, so you no longer have to worry about binding
+@code{buffer-undo-list} to @code{t} for such commands (though you may
+want to do that anyway, to avoid taking up unnecessary memory space.)
+
+@item
+Atomic change groups are no longer supported.
+
+@item
+The list returned by @code{(match-data t)} no longer records the
+buffer as a final element.
+
+@item
+The function @code{looking-back} has been removed, so we no longer
+have the benefit of hindsight.
+
+@item
+The variable @code{search-spaces-regexp} does not exist. Spaces
+always stand for themselves in regular expression searches.
+
+@item
+The functions @code{skip-chars-forward} and @code{skip-chars-backward}
+no longer accepts character classes such as @samp{[:alpha:]}. All
+characters are created equal.
+
+@item
+The @code{yank-handler} text property no longer has any meaning.
+Also, @code{yank-excluded-properties}, @code{insert-for-yank}, and
+@code{insert-buffer-substring-as-yank} have all been removed.
+
+@item
+The variable @code{char-property-alias-alist} has been deleted.
+Aliases are for functions, not for properties.
+
+@item
+The function @code{get-char-property-and-overlay} has been deleted.
+If you want the properties at a point, find the text properties at the
+point; then, find the overlays at the point, and find the properties
+on those overlays.
+
+@item
+Font Lock mode only manages @code{face} properties; you can't use
+font-lock keywords to specify arbitrary text properties for it to
+manage. After all, it is called Font Lock mode, not Arbitrary
+Properties Lock mode.
+
+@item
+The arguments to @code{remove-overlays} are no longer optional.
+
+@item
+In @code{replace-match}, the replacement text now inherits properties
+from the surrounding text.
+
+@item
+@code{mode-line-format} no longer supports the @code{:propertize},
+@code{%i}, and @code{%I} constructs. The function
+@code{format-mode-line} has been removed.
+
+@item
+The functions @code{window-inside-edges} and @code{window-body-height}
+have been removed. You should do the relevant calculations yourself,
+starting with @code{window-width} and @code{window-height}.
+
+@item
+The functions @code{window-pixel-edges} and
+@code{window-inside-pixel-edges} have been removed. We prefer to
+think in terms of lines and columns, not pixel coordinates. (Sometime
+in the distant past, we will do away with graphical terminals
+entirely, in favor of text terminals.) For similar reasons, the
+functions @code{posn-at-point}, @code{posn-at-x-y}, and
+@code{pos-visible-in-window-p} have been removed.
+
+@item
+The macro @code{save-selected-window} only saves the selected window
+of the selected frame, so don't try selecting windows in other frames.
+
+@item
+The function @code{minibufferp} is no longer available.
+
+@item
+The function @code{modify-all-frames-parameters} has been removed (we
+always suspected the name was ungrammatical, anyway.)
+
+@item
+The @code{line-spacing} variable no longer accepts float values.
+
+@item
+The function @code{tool-bar-local-item-from-menu} has been deleted.
+If you need to make an entry in the tool bar, you can still use
+@code{tool-bar-add-item-from-menu}, but that modifies the binding in
+the source keymap instead of copying it into the local keymap.
+
+@item
+When determining the major mode, the file name takes precedence over
+the interpreter magic line. The variable @code{magic-mode-alist},
+which associates certain buffer beginnings with major modes, has been
+eliminated.
+
+@item
+The hook @code{after-change-major-mode-hook} is not defined, and
+neither are @code{run-mode-hooks} and @code{delay-mode-hooks}.
+
+@item
+The variable @code{minor-mode-list} has been removed.