diff --git a/changelog.d/4912.misc b/changelog.d/4912.misc
new file mode 100644
index 0000000000000000000000000000000000000000..f05a23918722d23e5329ce55bcfbc1582c73d2f6
--- /dev/null
+++ b/changelog.d/4912.misc
@@ -0,0 +1 @@
+Allow newsfragments to end with exclamation marks. Exciting!
diff --git a/scripts-dev/check-newsfragment b/scripts-dev/check-newsfragment
index e0ac84198e9dc2aa75f30063bdc353bbee617c42..0ec5075e7938621a5f1235565888addd6a9a2123 100755
--- a/scripts-dev/check-newsfragment
+++ b/scripts-dev/check-newsfragment
@@ -31,8 +31,8 @@ echo
 # check that any new newsfiles on this branch end with a full stop.
 for f in `git diff --name-only FETCH_HEAD... -- changelog.d`; do
     lastchar=`tr -d '\n' < $f | tail -c 1`
-    if [ $lastchar != '.' ]; then
-        echo -e "\e[31mERROR: newsfragment $f does not end with a '.'\e[39m" >&2
+    if [ $lastchar != '.' -a $lastchar != '!' ]; then
+        echo -e "\e[31mERROR: newsfragment $f does not end with a '.' or '!'\e[39m" >&2
         exit 1
     fi
 done