diff --git a/src/Makefile.d/features.mk b/src/Makefile.d/features.mk
index b0ff2a71f83502bbf4573c4a5069a1db59dae63b..7ea07f71c09855c7a4a61e7391a7569c296b3740 100644
--- a/src/Makefile.d/features.mk
+++ b/src/Makefile.d/features.mk
@@ -61,6 +61,7 @@ endif
 # (Valgrind is a memory debugger.)
 ifdef VALGRIND
 VALGRIND_PKGCONFIG?=valgrind
+VALGRIND_LDFLAGS=
 $(eval $(call Use_pkg_config,VALGRIND))
 ZDEBUG=1
 opts+=-DHAVE_VALGRIND
diff --git a/src/Makefile.d/versions.mk b/src/Makefile.d/versions.mk
index 2523d7f3c25f6c519e67d728417a40e9e052e883..b639ad9a13cb45a898d5c3d5b9d773b3203c2daf 100644
--- a/src/Makefile.d/versions.mk
+++ b/src/Makefile.d/versions.mk
@@ -84,6 +84,9 @@ endif
  WFLAGS+=-Wnested-externs
 #WFLAGS+=-Wunreachable-code
  WFLAGS+=-Winline
+ifdef DEBUGMODE
+ WFLAGS+=-Wno-error=inline
+endif
 ifdef GCC43
  WFLAGS+=-funit-at-a-time
  WFLAGS+=-Wlogical-op
diff --git a/src/doomdef.h b/src/doomdef.h
index 45d6645faa0bc0ff884e11cb5722e4967f679560..b0610cb8232ed272e4982e8ba8ff662b31e23abf 100644
--- a/src/doomdef.h
+++ b/src/doomdef.h
@@ -110,11 +110,19 @@ FILE *fopenfile(const char*, const char*);
 
 // If you don't disable ALL debug first, you get ALL debug enabled
 #if !defined (NDEBUG)
+#ifndef PACKETDROP
 #define PACKETDROP
+#endif
+#ifndef PARANOIA
 #define PARANOIA
+#endif
+#ifndef RANGECHECK
 #define RANGECHECK
+#endif
+#ifndef ZDEBUG
 #define ZDEBUG
 #endif
+#endif
 
 // Uncheck this to compile debugging code
 //#define RANGECHECK
diff --git a/src/mserv.c b/src/mserv.c
index f83b16d07e648a7ac83a541f0b2b17c2652e650e..d60cc09c5d624fb121e5ea8ab6f3602d4f457ef7 100644
--- a/src/mserv.c
+++ b/src/mserv.c
@@ -506,7 +506,7 @@ static void
 Update_parameters (void)
 {
 #ifdef MASTERSERVER
-	int registered;
+	int registered = 0;
 	int delayed;
 
 	if (Online())