diff --git a/sys/arch/arm/arm/cpufunc_asm_armv7.S b/sys/arch/arm/arm/cpufunc_asm_armv7.S
index a2db3a866a01..c3c3ed1dcfcb 100644
--- a/sys/arch/arm/arm/cpufunc_asm_armv7.S
+++ b/sys/arch/arm/arm/cpufunc_asm_armv7.S
@@ -71,6 +71,10 @@ END(armv7_tlb_flushID_SE)
 
 
 ENTRY(armv7_setttb)
+	mrc	p15, 0, r1, c0, c0, 5	@ get MPIDR
+	cmp	r1, #0
+	orrlt	r0, #0x5b		@ MP, cachable (Normal in/out WB)
+	orrge	r0, #0x1b		@ Non-MP, cacheable, normal WB
 	mcr	p15, 0, r0, c2, c0, 0   @ load new TTB
 #ifdef MULTIPROCESSOR
 	mcr	p15, 0, r0, c8, c3, 0	@ invalidate all I+D TLBs
diff --git a/sys/arch/arm/include/arm32/pmap.h b/sys/arch/arm/include/arm32/pmap.h
index 3b4fecaf888c..4a0dfcac0779 100644
--- a/sys/arch/arm/include/arm32/pmap.h
+++ b/sys/arch/arm/include/arm32/pmap.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.h,v 1.107 2012/09/02 14:43:21 matt Exp $	*/
+/*	$NetBSD: pmap.h,v 1.108 2012/09/06 02:07:25 matt Exp $	*/
 
 /*
  * Copyright (c) 2002, 2003 Wasabi Systems, Inc.
@@ -405,7 +405,7 @@ extern int pmap_needs_pte_sync;
 #if (ARM_MMU_SA1 + ARM_MMU_V6 + ARM_MMU_V7 != 0) && (ARM_NMMUS == 1) 
 #define	PMAP_INCLUDE_PTE_SYNC
 #if (ARM_MMU_V7 > 0)
-#define	PMAP_NEEDS_PTE_SYNC	1
+#define	PMAP_NEEDS_PTE_SYNC	0
 #else
 #define	PMAP_NEEDS_PTE_SYNC	1
 #endif