diff --git a/tree.go b/tree.go
index c84a489..e96d361 100644
--- a/tree.go
+++ b/tree.go
@@ -186,7 +186,7 @@
 }
 
 func (n *node) insertChild(numParams uint8, path string, handle Handle) {
-	var offset int
+	var offset int // already handled bytes of the path
 
 	// find prefix until first wildcard (beginning with ':'' or '*'')
 	for i, max := 0, len(path); numParams > 0; i++ {
@@ -195,7 +195,7 @@
 			continue
 		}
 
-		// Check if this Node existing children which would be
+		// check if this Node existing children which would be
 		// unreachable if we insert the wildcard here
 		if len(n.children) > 0 {
 			panic("wildcard route conflicts with existing children")
@@ -204,9 +204,16 @@
 		// find wildcard end (either '/' or path end)
 		end := i + 1
 		for end < max && path[end] != '/' {
-			end++
+			switch path[end] {
+			// the wildcard name must not contain ':' and '*'
+			case ':', '*':
+				panic("only one wildcard per path segment is allowed")
+			default:
+				end++
+			}
 		}
 
+		// check if the wildcard has a name
 		if end-i < 2 {
 			panic("wildcards must be named with a non-empty name")
 		}
diff --git a/tree_test.go b/tree_test.go
index ed1f9a8..484621e 100644
--- a/tree_test.go
+++ b/tree_test.go
@@ -339,6 +339,27 @@
 	testRoutes(t, routes)
 }
 
+func TestTreeDoubleWildcard(t *testing.T) {
+	const panicMsg = "only one wildcard per path segment is allowed"
+
+	routes := [...]string{
+		"/:foo:bar",
+		"/:foo:bar/",
+		"/:foo*bar",
+	}
+
+	for _, route := range routes {
+		tree := &node{}
+		recv := catchPanic(func() {
+			tree.addRoute(route, nil)
+		})
+
+		if rs, ok := recv.(string); !ok || rs != panicMsg {
+			t.Fatalf(`"Expected panic "%s" for route '%s', got "%v"`, panicMsg, route, recv)
+		}
+	}
+}
+
 /*func TestTreeDuplicateWildcard(t *testing.T) {
 	tree := &node{}
 
