diff --git a/include/asm-powerpc/elf.h b/include/asm-powerpc/elf.h
index 746e53d60cbeb3e90667d22c1c869ffc1a548e43..b6a874db801d023546d38460365dbbd12a6d57c0 100644
--- a/include/asm-powerpc/elf.h
+++ b/include/asm-powerpc/elf.h
@@ -255,7 +255,8 @@ do {								\
 	else							\
 		clear_thread_flag(TIF_ABI_PENDING);		\
 	if (personality(current->personality) != PER_LINUX32)	\
-		set_personality(PER_LINUX);			\
+		set_personality(PER_LINUX |			\
+			(current->personality & (~PER_MASK)));	\
 } while (0)
 /*
  * An executable for which elf_read_implies_exec() returns TRUE will