diff --git a/testing/Makefile b/testing/Makefile
index 4653004..6eff973 100644
--- a/testing/Makefile
+++ b/testing/Makefile
@@ -1,9 +1,14 @@
 
 .SILENT:
 
-.PHONY: cpus errors warnings
+.PHONY: auto bugfixes cpus errors warnings
 
-all: bugfixes cpus errors warnings
+all: auto bugfixes cpus errors warnings
+
+auto:
+	echo "Performing self-tests..."
+	echo
+	make -C auto
 
 bugfixes:
 	echo "Testing bugfixes..."
diff --git a/testing/auto/Makefile b/testing/auto/Makefile
new file mode 100644
index 0000000..0418560
--- /dev/null
+++ b/testing/auto/Makefile
@@ -0,0 +1,15 @@
+ACMEFLAGS	= -v0
+FILES		:= $(wildcard *.a)
+TESTS		= $(subst .a,.test,$(FILES))
+
+.SILENT:
+
+%.test: %.a
+	echo "Test:" $<
+	acme $(ACMEFLAGS) $<
+	echo "Ok."
+
+all: $(TESTS)
+	echo
+	echo "Self-tests: PASSED"
+	echo
diff --git a/testing/math1.a b/testing/auto/math.a
similarity index 100%
rename from testing/math1.a
rename to testing/auto/math.a
diff --git a/testing/numberflags.a b/testing/auto/numberflags.a
similarity index 100%
rename from testing/numberflags.a
rename to testing/auto/numberflags.a
diff --git a/testing/bugfixes/executed-quotes.a b/testing/bugfixes/executed-quotes.a
index 48bd51e..e7568d7 100644
--- a/testing/bugfixes/executed-quotes.a
+++ b/testing/bugfixes/executed-quotes.a
@@ -2,4 +2,5 @@
 	; the "skip code" function did not honor quotes, so stuff after ':' was
 	; executed.
 	!ifdef UNDEFINED !tx " dummy : older versions tried to parse this!"
+	!ifdef UNDEFINED !tx ' dummy : older versions tried to parse this!'
 	; fixing this supersedes two older fixes for "!to" and "!sl".