diff --git a/lib/modules/Parser.pmod/C.pmod b/lib/modules/Parser.pmod/C.pmod
index a2a1c7267e8fe441ed6cd94707ea1e3205e5a619..53ffb352cac9b0649b308824e68cefe896feea2d 100644
--- a/lib/modules/Parser.pmod/C.pmod
+++ b/lib/modules/Parser.pmod/C.pmod
@@ -211,6 +211,15 @@ array(Token|array) group(array(string|Token) tokens,
 	ret=stack->pop()+({ ret + ({token}) });
     }
   }
+  while (sizeof(stack)) {
+    Token token = ret[0];
+    werror("%s:%d: Missing %O.\n",
+	   token->file||"-", token->line,
+	   groupings[(string)token]);
+    ret = stack->pop() +
+      ({ ret +
+	 ({ Token(groupings[(string)token], token->line, token->file) }) });
+  }
   return ret;
 }