diff --git a/Makefile b/Makefile
index 8cc8dca2..61650f84 100644
--- a/Makefile
+++ b/Makefile
@@ -36,7 +36,7 @@ config-musl: scc-make FORCE
 	sed -En '/COLLECT_LTO_WRAPPER=/ s/.*=(.*)\/lto-wrapper/\1/p' |\
 	(read -r path; \
 	 printf "g/define GCCLIBPATH/ s@.*@#define GCCLIBPATH \"$$path/\"@\nw\n") |\
-	ed -s include/bits/scc/sys.h
+	ed -s include/scc/bits/scc/sys.h
 
 clean: FORCE
 	touch config.mk
diff --git a/include/scc/bits/scc/Makefile b/include/scc/bits/scc/Makefile
index 807301ff..fbd2b432 100644
--- a/include/scc/bits/scc/Makefile
+++ b/include/scc/bits/scc/Makefile
@@ -1,6 +1,6 @@
 .POSIX:
 
-PROJECTDIR = ../../..
+PROJECTDIR = ../../../..
 include $(PROJECTDIR)/scripts/rules.mk
 
 NODEP = 1
diff --git a/include/scc/bits/scc/sys-scc.h b/include/scc/bits/scc/sys-scc.h
index 1eae4068..9d6ae86b 100644
--- a/include/scc/bits/scc/sys-scc.h
+++ b/include/scc/bits/scc/sys-scc.h
@@ -3,10 +3,10 @@
 
 /* configure below your standard sys include paths */
 char *sysincludes[] = {
-	"%p/include/bits/%a/",
-	"%p/include/bits/%s/",
-	"%p/include/bits/%s/%a/",
-	"%p/include/",
+	"%p/include/scc/bits/%a/",
+	"%p/include/scc/bits/%s/",
+	"%p/include/scc/bits/%s/%a/",
+	"%p/include/scc/",
 	NULL
 };
 
diff --git a/include/scc/bits/scc/sys-scc_clang.h b/include/scc/bits/scc/sys-scc_clang.h
index 975acf18..25cc15de 100644
--- a/include/scc/bits/scc/sys-scc_clang.h
+++ b/include/scc/bits/scc/sys-scc_clang.h
@@ -3,10 +3,10 @@
 
 /* configure below your standard sys include paths */
 char *sysincludes[] = {
-	"%p/include/bits/%a/",
-	"%p/include/bits/%s/",
-	"%p/include/bits/%s/%a/",
-	"%p/include/",
+	"%p/include/scc/bits/%a/",
+	"%p/include/scc/bits/%s/",
+	"%p/include/scc/bits/%s/%a/",
+	"%p/include/scc",
 	NULL
 };
 
diff --git a/main.mk b/main.mk
index c1c556bc..351442a0 100644
--- a/main.mk
+++ b/main.mk
@@ -4,7 +4,7 @@ DIRS  =\
 	src\
 	src/libc\
 	src/libcrt\
-	include/bits/scc\
+	include/scc/bits/scc\
 	tests\
 
 PROJECTDIR = .
@@ -18,7 +18,7 @@ all:
 	+@$(MAKE) -f main.mk $(ARCH)
 
 config: FORCE
-	+@cd include/bits/scc && $(MAKE)
+	+@cd include/scc/bits/scc && $(MAKE)
 
 install: all
 	$(SCRIPTDIR)/install $(ROOT)
@@ -44,9 +44,9 @@ clean:
 	rm -rf dirs coverage
 
 distclean: clean
-	rm -f include/bits/scc/cstd.h
-	rm -f include/bits/scc/sys.h
-	rm -f include/bits/scc/config.h
+	rm -f include/scc/bits/scc/cstd.h
+	rm -f include/scc/bits/scc/sys.h
+	rm -f include/scc/bits/scc/config.h
 
 include scripts/amd64.mk
 include scripts/arm.mk
diff --git a/scripts/proto.all b/scripts/proto.all
index 263ee38d..9f102e38 100644
--- a/scripts/proto.all
+++ b/scripts/proto.all
@@ -15,180 +15,181 @@ f 755 bin/scc-ranlib
 f 755 bin/scc-size
 f 755 bin/scc-strip
 d 755 include
-f 644 include/assert.h
-d 755 include/bits
-d 755 include/bits/amd64
-d 755 include/bits/amd64/arch
-f 644 include/bits/amd64/arch/cdefs.h
-f 644 include/bits/amd64/arch/float.h
-f 644 include/bits/amd64/arch/limits.h
-f 644 include/bits/amd64/arch/setjmp.h
-f 644 include/bits/amd64/arch/stdlib.h
-f 644 include/bits/amd64/arch/string.h
-d 755 include/bits/arm
-d 755 include/bits/arm/arch
-f 644 include/bits/arm/arch/cdefs.h
-f 644 include/bits/arm/arch/limits.h
-f 644 include/bits/arm/arch/setjmp.h
-f 644 include/bits/arm/arch/stdlib.h
-f 644 include/bits/arm/arch/string.h
-d 755 include/bits/arm64
-d 755 include/bits/arm64/arch
-f 644 include/bits/arm64/arch/cdefs.h
-f 644 include/bits/arm64/arch/limits.h
-f 644 include/bits/arm64/arch/setjmp.h
-f 644 include/bits/arm64/arch/stdlib.h
-f 644 include/bits/arm64/arch/string.h
-d 755 include/bits/darwin
-d 755 include/bits/darwin/amd64
-d 755 include/bits/darwin/amd64/arch
-f 644 include/bits/darwin/amd64/arch/inttypes.h
-f 644 include/bits/darwin/amd64/arch/sigaction.h
-f 644 include/bits/darwin/amd64/arch/stdint.h
-f 644 include/bits/darwin/amd64/arch/time.h
-d 755 include/bits/darwin/sys
-f 644 include/bits/darwin/sys.h
-f 644 include/bits/darwin/sys/cdefs.h
-f 644 include/bits/darwin/sys/errno.h
-f 644 include/bits/darwin/sys/signal.h
-f 644 include/bits/darwin/sys/stdio.h
-f 644 include/bits/darwin/sys/stdlib.h
-d 755 include/bits/dragonfly
-d 755 include/bits/dragonfly/amd64
-d 755 include/bits/dragonfly/amd64/arch
-f 644 include/bits/dragonfly/amd64/arch/inttypes.h
-f 644 include/bits/dragonfly/amd64/arch/sigaction.h
-f 644 include/bits/dragonfly/amd64/arch/stdint.h
-f 644 include/bits/dragonfly/amd64/arch/time.h
-d 755 include/bits/dragonfly/sys
-f 644 include/bits/dragonfly/sys.h
-f 644 include/bits/dragonfly/sys/cdefs.h
-f 644 include/bits/dragonfly/sys/errno.h
-f 644 include/bits/dragonfly/sys/signal.h
-f 644 include/bits/dragonfly/sys/stdio.h
-f 644 include/bits/dragonfly/sys/stdlib.h
-d 755 include/bits/freebsd
-d 755 include/bits/freebsd/amd64
-d 755 include/bits/freebsd/amd64/arch
-f 644 include/bits/freebsd/amd64/arch/inttypes.h
-f 644 include/bits/freebsd/amd64/arch/sigaction.h
-f 644 include/bits/freebsd/amd64/arch/stdint.h
-f 644 include/bits/freebsd/amd64/arch/time.h
-d 755 include/bits/freebsd/sys
-f 644 include/bits/freebsd/sys.h
-f 644 include/bits/freebsd/sys/cdefs.h
-f 644 include/bits/freebsd/sys/errno.h
-f 644 include/bits/freebsd/sys/signal.h
-f 644 include/bits/freebsd/sys/stdio.h
-f 644 include/bits/freebsd/sys/stdlib.h
-d 755 include/bits/i386
-d 755 include/bits/i386/arch
-f 644 include/bits/i386/arch/cdefs.h
-f 644 include/bits/i386/arch/limits.h
-f 644 include/bits/i386/arch/setjmp.h
-f 644 include/bits/i386/arch/stdlib.h
-f 644 include/bits/i386/arch/string.h
-d 755 include/bits/linux
-d 755 include/bits/linux/amd64
-d 755 include/bits/linux/amd64/arch
-f 644 include/bits/linux/amd64/arch/inttypes.h
-f 644 include/bits/linux/amd64/arch/sigaction.h
-f 644 include/bits/linux/amd64/arch/stdint.h
-f 644 include/bits/linux/amd64/arch/time.h
-d 755 include/bits/linux/arm
-d 755 include/bits/linux/arm/arch
-f 644 include/bits/linux/arm/arch/inttypes.h
-f 644 include/bits/linux/arm/arch/sigaction.h
-f 644 include/bits/linux/arm/arch/stdint.h
-f 644 include/bits/linux/arm/arch/time.h
-d 755 include/bits/linux/arm64
-d 755 include/bits/linux/arm64/arch
-f 644 include/bits/linux/arm64/arch/inttypes.h
-f 644 include/bits/linux/arm64/arch/sigaction.h
-f 644 include/bits/linux/arm64/arch/stdint.h
-f 644 include/bits/linux/arm64/arch/time.h
-d 755 include/bits/linux/i386
-d 755 include/bits/linux/i386/arch
-f 644 include/bits/linux/i386/arch/inttypes.h
-f 644 include/bits/linux/i386/arch/sigaction.h
-f 644 include/bits/linux/i386/arch/stdint.h
-f 644 include/bits/linux/i386/arch/time.h
-d 755 include/bits/linux/ppc
-d 755 include/bits/linux/ppc/arch
-f 644 include/bits/linux/ppc/arch/inttypes.h
-f 644 include/bits/linux/ppc/arch/sigaction.h
-f 644 include/bits/linux/ppc/arch/stdint.h
-f 644 include/bits/linux/ppc/arch/time.h
-d 755 include/bits/linux/sys
-f 644 include/bits/linux/sys.h
-f 644 include/bits/linux/sys/cdefs.h
-f 644 include/bits/linux/sys/errno.h
-f 644 include/bits/linux/sys/signal.h
-f 644 include/bits/linux/sys/stdio.h
-f 644 include/bits/linux/sys/stdlib.h
-d 755 include/bits/netbsd
-d 755 include/bits/netbsd/amd64
-d 755 include/bits/netbsd/amd64/arch
-f 644 include/bits/netbsd/amd64/arch/inttypes.h
-f 644 include/bits/netbsd/amd64/arch/sigaction.h
-f 644 include/bits/netbsd/amd64/arch/stdint.h
-f 644 include/bits/netbsd/amd64/arch/time.h
-d 755 include/bits/netbsd/sys
-f 644 include/bits/netbsd/sys.h
-f 644 include/bits/netbsd/sys/cdefs.h
-f 644 include/bits/netbsd/sys/errno.h
-f 644 include/bits/netbsd/sys/signal.h
-f 644 include/bits/netbsd/sys/stdio.h
-f 644 include/bits/netbsd/sys/stdlib.h
-d 755 include/bits/openbsd
-d 755 include/bits/openbsd/amd64
-d 755 include/bits/openbsd/amd64/arch
-f 644 include/bits/openbsd/amd64/arch/inttypes.h
-f 644 include/bits/openbsd/amd64/arch/sigaction.h
-f 644 include/bits/openbsd/amd64/arch/stdint.h
-f 644 include/bits/openbsd/amd64/arch/time.h
-d 755 include/bits/openbsd/sys
-f 644 include/bits/openbsd/sys.h
-f 644 include/bits/openbsd/sys/cdefs.h
-f 644 include/bits/openbsd/sys/errno.h
-f 644 include/bits/openbsd/sys/signal.h
-f 644 include/bits/openbsd/sys/stdio.h
-f 644 include/bits/openbsd/sys/stdlib.h
-d 755 include/bits/ppc
-d 755 include/bits/ppc/arch
-f 644 include/bits/ppc/arch/cdefs.h
-f 644 include/bits/ppc/arch/limits.h
-f 644 include/bits/ppc/arch/setjmp.h
-f 644 include/bits/ppc/arch/stdlib.h
-f 644 include/bits/ppc/arch/string.h
-d 755 include/bits/z80
-d 755 include/bits/z80/arch
-f 644 include/bits/z80/arch/cdefs.h
-f 644 include/bits/z80/arch/limits.h
-f 644 include/bits/z80/arch/setjmp.h
-f 644 include/bits/z80/arch/stdint.h
-f 644 include/bits/z80/arch/stdlib.h
-f 644 include/bits/z80/arch/string.h
-f 644 include/ctype.h
-f 644 include/errno.h
-f 644 include/float.h
-f 644 include/inttypes.h
-f 644 include/iso646.h
-f 644 include/limits.h
-f 644 include/locale.h
-f 644 include/math.h
-f 644 include/setjmp.h
-f 644 include/signal.h
-f 644 include/stdarg.h
-f 644 include/stdbool.h
-f 644 include/stddef.h
-f 644 include/stdint.h
-f 644 include/stdio.h
-f 644 include/stdlib.h
-f 644 include/string.h
-f 644 include/time.h
-f 644 include/wchar.h
-f 644 include/wctype.h
+d 755 include/scc
+f 644 include/scc/assert.h
+d 755 include/scc/bits
+d 755 include/scc/bits/amd64
+d 755 include/scc/bits/amd64/arch
+f 644 include/scc/bits/amd64/arch/cdefs.h
+f 644 include/scc/bits/amd64/arch/float.h
+f 644 include/scc/bits/amd64/arch/limits.h
+f 644 include/scc/bits/amd64/arch/setjmp.h
+f 644 include/scc/bits/amd64/arch/stdlib.h
+f 644 include/scc/bits/amd64/arch/string.h
+d 755 include/scc/bits/arm
+d 755 include/scc/bits/arm/arch
+f 644 include/scc/bits/arm/arch/cdefs.h
+f 644 include/scc/bits/arm/arch/limits.h
+f 644 include/scc/bits/arm/arch/setjmp.h
+f 644 include/scc/bits/arm/arch/stdlib.h
+f 644 include/scc/bits/arm/arch/string.h
+d 755 include/scc/bits/arm64
+d 755 include/scc/bits/arm64/arch
+f 644 include/scc/bits/arm64/arch/cdefs.h
+f 644 include/scc/bits/arm64/arch/limits.h
+f 644 include/scc/bits/arm64/arch/setjmp.h
+f 644 include/scc/bits/arm64/arch/stdlib.h
+f 644 include/scc/bits/arm64/arch/string.h
+d 755 include/scc/bits/darwin
+d 755 include/scc/bits/darwin/amd64
+d 755 include/scc/bits/darwin/amd64/arch
+f 644 include/scc/bits/darwin/amd64/arch/inttypes.h
+f 644 include/scc/bits/darwin/amd64/arch/sigaction.h
+f 644 include/scc/bits/darwin/amd64/arch/stdint.h
+f 644 include/scc/bits/darwin/amd64/arch/time.h
+d 755 include/scc/bits/darwin/sys
+f 644 include/scc/bits/darwin/sys.h
+f 644 include/scc/bits/darwin/sys/cdefs.h
+f 644 include/scc/bits/darwin/sys/errno.h
+f 644 include/scc/bits/darwin/sys/signal.h
+f 644 include/scc/bits/darwin/sys/stdio.h
+f 644 include/scc/bits/darwin/sys/stdlib.h
+d 755 include/scc/bits/dragonfly
+d 755 include/scc/bits/dragonfly/amd64
+d 755 include/scc/bits/dragonfly/amd64/arch
+f 644 include/scc/bits/dragonfly/amd64/arch/inttypes.h
+f 644 include/scc/bits/dragonfly/amd64/arch/sigaction.h
+f 644 include/scc/bits/dragonfly/amd64/arch/stdint.h
+f 644 include/scc/bits/dragonfly/amd64/arch/time.h
+d 755 include/scc/bits/dragonfly/sys
+f 644 include/scc/bits/dragonfly/sys.h
+f 644 include/scc/bits/dragonfly/sys/cdefs.h
+f 644 include/scc/bits/dragonfly/sys/errno.h
+f 644 include/scc/bits/dragonfly/sys/signal.h
+f 644 include/scc/bits/dragonfly/sys/stdio.h
+f 644 include/scc/bits/dragonfly/sys/stdlib.h
+d 755 include/scc/bits/freebsd
+d 755 include/scc/bits/freebsd/amd64
+d 755 include/scc/bits/freebsd/amd64/arch
+f 644 include/scc/bits/freebsd/amd64/arch/inttypes.h
+f 644 include/scc/bits/freebsd/amd64/arch/sigaction.h
+f 644 include/scc/bits/freebsd/amd64/arch/stdint.h
+f 644 include/scc/bits/freebsd/amd64/arch/time.h
+d 755 include/scc/bits/freebsd/sys
+f 644 include/scc/bits/freebsd/sys.h
+f 644 include/scc/bits/freebsd/sys/cdefs.h
+f 644 include/scc/bits/freebsd/sys/errno.h
+f 644 include/scc/bits/freebsd/sys/signal.h
+f 644 include/scc/bits/freebsd/sys/stdio.h
+f 644 include/scc/bits/freebsd/sys/stdlib.h
+d 755 include/scc/bits/i386
+d 755 include/scc/bits/i386/arch
+f 644 include/scc/bits/i386/arch/cdefs.h
+f 644 include/scc/bits/i386/arch/limits.h
+f 644 include/scc/bits/i386/arch/setjmp.h
+f 644 include/scc/bits/i386/arch/stdlib.h
+f 644 include/scc/bits/i386/arch/string.h
+d 755 include/scc/bits/linux
+d 755 include/scc/bits/linux/amd64
+d 755 include/scc/bits/linux/amd64/arch
+f 644 include/scc/bits/linux/amd64/arch/inttypes.h
+f 644 include/scc/bits/linux/amd64/arch/sigaction.h
+f 644 include/scc/bits/linux/amd64/arch/stdint.h
+f 644 include/scc/bits/linux/amd64/arch/time.h
+d 755 include/scc/bits/linux/arm
+d 755 include/scc/bits/linux/arm/arch
+f 644 include/scc/bits/linux/arm/arch/inttypes.h
+f 644 include/scc/bits/linux/arm/arch/sigaction.h
+f 644 include/scc/bits/linux/arm/arch/stdint.h
+f 644 include/scc/bits/linux/arm/arch/time.h
+d 755 include/scc/bits/linux/arm64
+d 755 include/scc/bits/linux/arm64/arch
+f 644 include/scc/bits/linux/arm64/arch/inttypes.h
+f 644 include/scc/bits/linux/arm64/arch/sigaction.h
+f 644 include/scc/bits/linux/arm64/arch/stdint.h
+f 644 include/scc/bits/linux/arm64/arch/time.h
+d 755 include/scc/bits/linux/i386
+d 755 include/scc/bits/linux/i386/arch
+f 644 include/scc/bits/linux/i386/arch/inttypes.h
+f 644 include/scc/bits/linux/i386/arch/sigaction.h
+f 644 include/scc/bits/linux/i386/arch/stdint.h
+f 644 include/scc/bits/linux/i386/arch/time.h
+d 755 include/scc/bits/linux/ppc
+d 755 include/scc/bits/linux/ppc/arch
+f 644 include/scc/bits/linux/ppc/arch/inttypes.h
+f 644 include/scc/bits/linux/ppc/arch/sigaction.h
+f 644 include/scc/bits/linux/ppc/arch/stdint.h
+f 644 include/scc/bits/linux/ppc/arch/time.h
+d 755 include/scc/bits/linux/sys
+f 644 include/scc/bits/linux/sys.h
+f 644 include/scc/bits/linux/sys/cdefs.h
+f 644 include/scc/bits/linux/sys/errno.h
+f 644 include/scc/bits/linux/sys/signal.h
+f 644 include/scc/bits/linux/sys/stdio.h
+f 644 include/scc/bits/linux/sys/stdlib.h
+d 755 include/scc/bits/netbsd
+d 755 include/scc/bits/netbsd/amd64
+d 755 include/scc/bits/netbsd/amd64/arch
+f 644 include/scc/bits/netbsd/amd64/arch/inttypes.h
+f 644 include/scc/bits/netbsd/amd64/arch/sigaction.h
+f 644 include/scc/bits/netbsd/amd64/arch/stdint.h
+f 644 include/scc/bits/netbsd/amd64/arch/time.h
+d 755 include/scc/bits/netbsd/sys
+f 644 include/scc/bits/netbsd/sys.h
+f 644 include/scc/bits/netbsd/sys/cdefs.h
+f 644 include/scc/bits/netbsd/sys/errno.h
+f 644 include/scc/bits/netbsd/sys/signal.h
+f 644 include/scc/bits/netbsd/sys/stdio.h
+f 644 include/scc/bits/netbsd/sys/stdlib.h
+d 755 include/scc/bits/openbsd
+d 755 include/scc/bits/openbsd/amd64
+d 755 include/scc/bits/openbsd/amd64/arch
+f 644 include/scc/bits/openbsd/amd64/arch/inttypes.h
+f 644 include/scc/bits/openbsd/amd64/arch/sigaction.h
+f 644 include/scc/bits/openbsd/amd64/arch/stdint.h
+f 644 include/scc/bits/openbsd/amd64/arch/time.h
+d 755 include/scc/bits/openbsd/sys
+f 644 include/scc/bits/openbsd/sys.h
+f 644 include/scc/bits/openbsd/sys/cdefs.h
+f 644 include/scc/bits/openbsd/sys/errno.h
+f 644 include/scc/bits/openbsd/sys/signal.h
+f 644 include/scc/bits/openbsd/sys/stdio.h
+f 644 include/scc/bits/openbsd/sys/stdlib.h
+d 755 include/scc/bits/ppc
+d 755 include/scc/bits/ppc/arch
+f 644 include/scc/bits/ppc/arch/cdefs.h
+f 644 include/scc/bits/ppc/arch/limits.h
+f 644 include/scc/bits/ppc/arch/setjmp.h
+f 644 include/scc/bits/ppc/arch/stdlib.h
+f 644 include/scc/bits/ppc/arch/string.h
+d 755 include/scc/bits/z80
+d 755 include/scc/bits/z80/arch
+f 644 include/scc/bits/z80/arch/cdefs.h
+f 644 include/scc/bits/z80/arch/limits.h
+f 644 include/scc/bits/z80/arch/setjmp.h
+f 644 include/scc/bits/z80/arch/stdint.h
+f 644 include/scc/bits/z80/arch/stdlib.h
+f 644 include/scc/bits/z80/arch/string.h
+f 644 include/scc/ctype.h
+f 644 include/scc/errno.h
+f 644 include/scc/float.h
+f 644 include/scc/inttypes.h
+f 644 include/scc/iso646.h
+f 644 include/scc/limits.h
+f 644 include/scc/locale.h
+f 644 include/scc/math.h
+f 644 include/scc/setjmp.h
+f 644 include/scc/signal.h
+f 644 include/scc/stdarg.h
+f 644 include/scc/stdbool.h
+f 644 include/scc/stddef.h
+f 644 include/scc/stdint.h
+f 644 include/scc/stdio.h
+f 644 include/scc/stdlib.h
+f 644 include/scc/string.h
+f 644 include/scc/time.h
+f 644 include/scc/wchar.h
+f 644 include/scc/wctype.h
 d 755 libexec
 d 755 libexec/scc
 f 755 libexec/scc/as-amd64
diff --git a/scripts/rules.mk b/scripts/rules.mk
index 728c5553..3f99f264 100644
--- a/scripts/rules.mk
+++ b/scripts/rules.mk
@@ -12,7 +12,7 @@ include $(PROJECTDIR)/config.mk
 
 # Define helper macros for project directories
 DOCDIR    = $(PROJECTDIR)/doc
-INCDIR    = $(PROJECTDIR)/include
+INCDIR    = $(PROJECTDIR)/include/scc
 BINDIR    = $(PROJECTDIR)/bin
 SRCDIR    = $(PROJECTDIR)/src
 SCRIPTDIR = $(PROJECTDIR)/scripts
diff --git a/src/libc/gcc-scc.sh b/src/libc/gcc-scc.sh
index 4c7d2bda..5afbbd35 100755
--- a/src/libc/gcc-scc.sh
+++ b/src/libc/gcc-scc.sh
@@ -39,7 +39,7 @@ sys=${sys:-`uname | tr 'A-Z' 'a-z'`}
 abi=${abi:-amd64}
 out=${out:-a.out}
 root=${root:-${SCCPREFIX:-`dirname $0`/..}}
-inc=$root/include
+inc=$root/include/scc
 arch_inc=$inc/bits/$abi
 sys_inc=$inc/bits/$sys
 sys_arch_inc=$inc/bits/$sys/$abi
diff --git a/tests/make/execute/0102-signal.sh b/tests/make/execute/0102-signal.sh
index 6b355482..f6692420 100755
--- a/tests/make/execute/0102-signal.sh
+++ b/tests/make/execute/0102-signal.sh
@@ -21,7 +21,7 @@ adir:
 EOF
 pid=$!
 
-sleep 10 && echo timeout >&2 && kill $$ 2>/dev/null &
+sleep 20 && echo timeout >&2 && kill $$ 2>/dev/null &
 timer=$!
 
 while :
