diff --git a/msg.lisp b/msg.lisp
new file mode 100644
index 0000000..2215066
--- /dev/null
+++ b/msg.lisp
@@ -0,0 +1,11 @@
+
+(in-package :thot)
+
+(defmacro msg (level &rest parts)
+ `(progn
+ (write-str *standard-output*
+ ,(symbol-name level)
+ #\Space
+ ,@parts
+ #\Newline)
+ (force-output)))
diff --git a/thot.asd b/thot.asd
index 482b7cc..c4faf26 100644
--- a/thot.asd
+++ b/thot.asd
@@ -28,7 +28,8 @@
"unistd-stream")
:components
((:file "package")
- (:file "mime" :depends-on ("package"))
+ (:file "mime" :depends-on ("msg"))
+ (:file "msg" :depends-on ("package"))
(:file "thot" :depends-on ("mime"))
(:file "thot-select" :depends-on ("thot"))
(:file "thot-threaded" :depends-on ("thot"))
diff --git a/thot.lisp b/thot.lisp
index 2d7cee4..d7526da 100644
--- a/thot.lisp
+++ b/thot.lisp
@@ -9,15 +9,6 @@
;;(setf (debug-p :directory) t)
;;(setf (debug-p :file) t)
-(defmacro msg (level &rest parts)
- `(progn
- (write-str *standard-output*
- ,(symbol-name level)
- #\Space
- ,@parts
- #\Newline)
- (force-output)))
-
(eval-when (:compile-toplevel :load-toplevel :execute)
(unless (boundp '+crlf+)
(defconstant +crlf+