Allow passing nil to ThenFunc
diff --git a/chain.go b/chain.go
index 97b1c6d..9b04887 100644
--- a/chain.go
+++ b/chain.go
@@ -69,6 +69,9 @@
 //
 // ThenFunc provides all the guarantees of Then.
 func (c Chain) ThenFunc(fn http.HandlerFunc) http.Handler {
+	if fn == nil {
+		return c.Then(nil)
+	}
 	return c.Then(http.HandlerFunc(fn))
 }
 
diff --git a/chain_test.go b/chain_test.go
index d78b1d9..e2bf501 100644
--- a/chain_test.go
+++ b/chain_test.go
@@ -55,6 +55,11 @@
 	assert.Equal(t, chained, http.DefaultServeMux)
 }
 
+func TestThenFuncTreatsNilAsDefaultServeMux(t *testing.T) {
+	chained := New().ThenFunc(nil)
+	assert.Equal(t, chained, http.DefaultServeMux)
+}
+
 func TestThenOrdersHandlersRight(t *testing.T) {
 	t1 := tagMiddleware("t1\n")
 	t2 := tagMiddleware("t2\n")