Here is the backtrace: ---------------------- (gdb) xbacktrace 0x83a4b24 "ychat-bineq" 0x83a518c "ychat-search-delimeter" 0x83a4e98 "ychat-parse-speech" 0x83a4bd8 "ychat-direct-incoming-packet" 0x83a4b3c "ychat-parse-header" 0x83a4a90 "ychat-get-packet" 0x83bf898 "ychat-insertion-filter" And here is the function it's dying in: --------------------------------------- (defun ychat-bineq (buf int &optional offset) "Internal function. Compares int to the byte at (point). If offset is set, compare to (+ (point) 1)." (let ((off (or offset 0))) (with-current-buffer buf (if (and (<= 2 (string-bytes (buffer-substring (+ (point) off) (point-max)))) (= int (ychat-bin-int (concat (ychat-hex-bin "00") (buffer-substring (+ (point) off) (+ (point) off 1)))))) (setq ret t) (setq ret nil)))) ret) (defun ychat-hex-bin (hex) "Return a binary string from a hex string HEX. It ignores all non-lower letter hex characters, which makes reading string from `eicq-bin-pretty-hex' and netwrok debug convenient. If the length of HEX is odd, ?0 is appended to its end." (interactive "sHex: ") (setq hex (downcase hex)) ;; stole from hexl.el (while (string-match "[^a-f0-9]" hex) (setq hex (replace-match "" t t hex))) (let (hex-list high low bin) (setq hex-list (mapcar (lambda (x) (if (and (>= x ?0) (<= x ?9)) (- x ?0) (+ 10 (- x ?a)))) hex)) (while hex-list (setq high (pop hex-list)) (setq low (or (pop hex-list) 0)) (setq bin (concat bin (char-to-string (+ (* high 16) low))))) (if (interactive-p) (kill-new bin)) bin))