--- linux-2.6.16.29-xen-grsec-org/fs/exec.c	2006-11-13 17:00:26.000000000 +0100
+++ linux-2.6.16.29-xen-grsec/fs/exec.c	2006-11-13 16:11:27.000000000 +0100
@@ -422,7 +422,7 @@
 	while (i < MAX_ARG_PAGES)
 		bprm->page[i++] = NULL;
 #else
-	stack_base = arch_align_stack(stack_top - MAX_ARG_PAGES*PAGE_SIZE);
+/*	stack_base = arch_align_stack(stack_top - MAX_ARG_PAGES*PAGE_SIZE); */
 	stack_base = PAGE_ALIGN(stack_base);
 	bprm->p += stack_base;
 	mm->arg_start = bprm->p;
--- linux-2.6.16.29-xen-grsec-org/fs/binfmt_elf.c	2006-11-13 17:00:25.000000000 +0100
+++ linux-2.6.16.29-xen-grsec/fs/binfmt_elf.c	2006-11-13 16:42:33.000000000 +0100
@@ -179,7 +179,8 @@
 		 * thing we can do is to shuffle the initial stack for them.
 		 */
 	 
-		p = arch_align_stack(p);
+/*		p = arch_align_stack(p);*/
+		p = PAGE_ALIGN(p);
 
 		u_platform = (elf_addr_t __user *)STACK_ALLOC(p, len);
 		if (__copy_to_user(u_platform, k_platform, len))
