                                             "\\((\\)\\)")    ;; 4: (
                                     bound t)
             (cond ((match-string 2)
-                   (setq level (+ level 1)))
+                   (incf level))
                   ((match-string 3)
-                   (setq level (- level 1)))
+                   (decf level))
                   ((and (eq level 0) (match-string 4))
                    (throw 'pos (- (point) 1))))))))))
 

          (while (> level 0)
            (if (re-search-forward "\\(<\\|>\\)" bound t)
                (if (string= (match-string 1) "<")
                    (setq level (+ level 1))
                  (setq level (- level 1)))
              (setq level 0))))
        (forward-line))
      (when (re-search-forward "^\\(class\\|struct\\) " (point-at-eol) t)

              (cond ((and (eq level 0) (match-string 2 arglist))
                     (throw 'end-arg-pos pos))
                    ((match-string 3 arglist)
                     (incf level))
                    ((match-string 4 arglist)
                     (decf level)))
              (setq pos (match-end 0)))
          (throw 'end-arg-pos to))))))

