diff --git a/common.mak b/common.mak
index 780f61e8d095f5d2ca15db509065c9d76a6d3466..46cac9f6d84dac88de6ebea3f3e557f18a23ce95 100644
--- a/common.mak
+++ b/common.mak
@@ -61,8 +61,9 @@ $(SLIBNAME_WITH_MAJOR): $(OBJS)
 ALLHEADERS = $(subst $(LIBSRC)/,,$(wildcard $(LIBSRC)/*.h))
 checkheaders: $(filter-out %_template.ho,$(ALLHEADERS:.h=.ho))
 
+# gcc stupidly only outputs the basename of targets with -MM
 depend dep: $(SRCS)
-	$(CC) -MM $(CFLAGS) $^ 1>.depend
+	$(CC) -MM $(CFLAGS) $^ | sed 's,[0-9a-z._-]*: \([a-z0-9]*/\).*,\1&,' 1>.depend
 
 clean::
 	rm -f *.o *~ *.a *.lib *.so *.so.* *.dylib *.dll \