diff --git a/gdb/contrib/spellcheck.sh b/gdb/contrib/spellcheck.sh
index 4203333b846..3188734331c 100755
--- a/gdb/contrib/spellcheck.sh
+++ b/gdb/contrib/spellcheck.sh
@@ -76,7 +76,7 @@ sed_separator=$(join $sed_or "${sed_separators[@]}")
 
 usage ()
 {
-    echo "usage: $(basename "$0") <file|dir>+"
+    echo "usage: $(basename "$0") [--check] <file|dir>+"
 }
 
 make_absolute ()
@@ -101,6 +101,18 @@ parse_args ()
     files=$(mktemp)
     trap 'rm -f "$files"' EXIT
 
+    while true; do
+	case " $1 " in
+	    " --check ")
+		check=true
+		shift
+		;;
+	    *)
+		break
+		;;
+	esac
+    done
+
     if [ $# -eq -0 ]; then
 	usage
 	exit 1
@@ -311,6 +323,7 @@ replace_word_in_files ()
 main ()
 {
     declare -a unique_files
+    check=false
     parse_args "$@"
 
     get_dictionary
@@ -329,6 +342,10 @@ main ()
 	return
     fi
 
+    if $check; then
+	exit 1
+    fi
+
     declare -A words_done
     local i word replacement
     i=0
