diff --git a/src/events.cpp b/src/events.cpp
index dc563692a..29647fa6a 100755
--- a/src/events.cpp
+++ b/src/events.cpp
@@ -16,6 +16,7 @@ bool E_RegisterHandler(DStaticEventHandler* handler)
 	if (handler->next)
 		handler->next->prev = handler;
 	E_FirstEventHandler = handler;
+	if (handler->IsStatic()) handler->ObjectFlags |= OF_Fixed;
 	return true;
 }
 
@@ -32,6 +33,11 @@ bool E_UnregisterHandler(DStaticEventHandler* handler)
 		handler->next->prev = handler->prev;
 	if (handler == E_FirstEventHandler)
 		E_FirstEventHandler = handler->next;
+	if (handler->IsStatic())
+	{
+		handler->ObjectFlags |= OF_YesReallyDelete;
+		delete handler;
+	}
 	return true;
 }