Index: code/editor/log.cpp
===================================================================
--- code/editor/log.cpp	(revision 9133)
+++ code/editor/log.cpp	(working copy)
@@ -27,7 +27,9 @@
 	Buf.appendfv(fmt, args_copy);
 	Buf.appendf("\n");
 	
+	va_end(args_copy);
 
+
 	ImColor c = ImColor(0.6f, 0.6f, 0.6f);
 	switch(level) {
 		case LogLevel::LOG_WARNING : c = ImColor(0.9f, 0.8f, 0.1f); break;
Index: code/editor/log.h
===================================================================
--- code/editor/log.h	(revision 9133)
+++ code/editor/log.h	(working copy)
@@ -59,4 +59,12 @@
 #define logPlayerWarning(...) mainLog->addLog(LogLevel::LOG_PLAYER_WARNING, __VA_ARGS__)
 #define logPlayerDebug(...) mainLog->addLog(LogLevel::LOG_PLAYER_DEBUG, __VA_ARGS__)
 
+#define logMessageV(fmt, args) mainLog->addLogV(LogLevel::LOG_MESSAGE, fmt, args)
+#define logWarningV(fmt, args) mainLog->addLogV(LogLevel::LOG_WARNING, fmt, args)
+#define logErrorV(fmt, args) mainLog->addLogV(LogLevel::LOG_ERROR, fmt, args)
+#define logSuccessV(fmt, args) mainLog->addLogV(LogLevel::LOG_SUCCESS, fmt, args)
+#define logPlayerErrorV(fmt, args) mainLog->addLogV(LogLevel::LOG_PLAYER_ERROR, fmt, args)
+#define logPlayerWarningV(fmt, args) mainLog->addLogV(LogLevel::LOG_PLAYER_WARNING, fmt, args)
+#define logPlayerDebugV(fmt, args) mainLog->addLogV(LogLevel::LOG_PLAYER_DEBUG, fmt, args)
+
 #define logAssert(EXP) if (!(EXP)) logError("%s:%i: ASSERT %s", __FILE__, __LINE__, STRING(EXP))
Index: code/editor/main.cpp
===================================================================
--- code/editor/main.cpp	(revision 9133)
+++ code/editor/main.cpp	(working copy)
@@ -133,9 +133,9 @@
 	va_list args;
 	va_start(args, fmt); // what is this stuff I don't even.
 	switch (level){
-		case 0: logPlayerError(fmt,args); break;
-		case 1: logPlayerWarning(fmt,args); break;
-		case 2: logPlayerDebug(fmt,args); break;
+		case 0: logPlayerErrorV(fmt,args); break;
+		case 1: logPlayerWarningV(fmt,args); break;
+		case 2: logPlayerDebugV(fmt,args); break;
 		default: break;
 	}
 	
