diff -Naur pptpd-1.3.4.orig/Makefile.am pptpd-1.3.4/Makefile.am
--- pptpd-1.3.4.orig/Makefile.am	2007-04-16 04:53:53.000000000 +0400
+++ pptpd-1.3.4/Makefile.am	2007-05-01 21:29:15.000000000 +0400
@@ -11,7 +11,7 @@
 ##  warning with -Wmissing-prototypes).
 ## -Wmissing-prototypes removed (eg, Linux 2.2.6 headers
 ##  aren't up to it).
-CFLAGS = -O2 -fno-builtin -Wall -DSBINDIR='"$(sbindir)"'
+CFLAGS += -fno-builtin -Wall -DSBINDIR='"$(sbindir)"'
 #CFLAGS = -O2 -fno-builtin -Wall -ansi -DSBINDIR='"$(sbindir)"'
 #CFLAGS = -O2 -fno-builtin -Wall -ansi -pedantic -Wmissing-prototypes -Werror -DSBINDIR='"$(sbindir)"'
 
diff -Naur pptpd-1.3.4.orig/plugins/Makefile pptpd-1.3.4/plugins/Makefile
--- pptpd-1.3.4.orig/plugins/Makefile	2006-08-03 06:02:01.000000000 +0400
+++ pptpd-1.3.4/plugins/Makefile	2007-05-01 21:29:15.000000000 +0400
@@ -1,6 +1,5 @@
-CC	= gcc
+CC	?= gcc
-COPTS	= -O2 -g
-CFLAGS	= $(COPTS) -I.. -I../../include -fPIC
+CFLAGS	+= -I.. -I../../include -fPIC
-LDFLAGS	= -shared
+LDFLAGS	+= -shared
 LDADD   = -lutil
 INSTALL	= install -o root
diff -Naur pptpd-1.3.4.orig/pptpgre.c pptpd-1.3.4/pptpgre.c
--- pptpd-1.3.4.orig/pptpgre.c	2007-04-16 04:21:02.000000000 +0400
+++ pptpd-1.3.4/pptpgre.c	2007-05-01 21:29:50.000000000 +0400
@@ -326,9 +326,11 @@
                                        "GRE: timeout waiting for %d packets", 
                                        head->seq - gre.seq_recv - 1);        
                 }
+#ifdef LOG_DEBUG_GRE_ACCEPTING_PACKET
                 if (pptpctrl_debug)
                         syslog(LOG_DEBUG, "GRE: accepting #%d from queue", 
                                head->seq);
+#endif
                 gre.seq_recv = head->seq;
                 status = callback(cl, head->packet, head->packlen);
                 pqueue_del(head);
diff -Naur pptpd-1.3.4.orig/pqueue.c pptpd-1.3.4/pqueue.c
--- pptpd-1.3.4.orig/pqueue.c	2005-08-03 12:53:22.000000000 +0400
+++ pptpd-1.3.4/pqueue.c	2007-05-01 21:29:15.000000000 +0400
@@ -7,13 +7,11 @@
 #include "pqueue.h"
 
 #ifdef DEBUG_PQUEUE
-#define DEBUG_ON 1
+#	define DEBUG_CMD(_a) { _a }
 #else
-#define DEBUG_ON 0
+#	define DEBUG_CMD(_a)
 #endif
 
-#define DEBUG_CMD(_a) if (DEBUG_ON) { _a }
-
 #define MIN_CAPACITY 128 /* min allocated buffer for a packet */
 
 static int pqueue_alloc (int seq, unsigned char *packet, int packlen, pqueue_t **new);
