Index: tests/exceptions/defaults.cfa
===================================================================
--- tests/exceptions/defaults.cfa	(revision d00d58175bd0e1df5524a7109ec9127ccb133764)
+++ tests/exceptions/defaults.cfa	(revision c715e5ff6f93573553c28ad82808e7e566136c47)
@@ -2,5 +2,4 @@
 
 #include <string.h>
-#include <exception.hfa>
 
 exception log_message {
@@ -8,9 +7,19 @@
 };
 
-_EHM_DEFINE_COPY(log_message, )
+void copy(log_message * this, log_message * that) {
+	*this = *that;
+}
+
 const char * msg(log_message * this) {
 	return this->msg;
 }
-_EHM_VIRTUAL_TABLE(log_message, , log_vt);
+
+const struct log_message_vtable log_vt @= {
+	.__cfavir_typeid : &__cfatid_log_message,
+	.size : sizeof(struct log_message),
+	.copy : copy,
+	.^?{} : ^?{},
+	.msg : msg,
+};
 
 // Logging messages don't have to be handled.
