diff --git a/ecrire/typographie/fr.php b/ecrire/typographie/fr.php
index 6b639aa074917aedeafe3e2c93522f528ec38347..6c9c0f2beb0b9c6ad230cd0507cbf965333c8ee1 100644
--- a/ecrire/typographie/fr.php
+++ b/ecrire/typographie/fr.php
@@ -46,13 +46,13 @@ function typographie_fr_dist($letexte) {
 	$cherche1 = array(
 		/* 1 */ 	'/((?:^|[^\#0-9a-zA-Z\&])[\#0-9a-zA-Z]*)\;/S',
 		/* 2 */		'/»| --?,|(?::| %)(?:\W|$)/S',
-		/* 3 */		'/([^[<!?(])([!?])/S',
+		/* 3 */		'/([^[<(])([!?][!?\.]*)($|\s)/S',
 		/* 4 */		'/&#171;|(?:M(?:M?\.|mes?|r\.?)|[MnN]&#176;) /S'
 	);
 	$remplace1 = array(
 		/* 1 */		'\1~;',
 		/* 2 */		'~\0',
-		/* 3 */		'\1~\2',
+		/* 3 */		'\1~\2\3',
 		/* 4 */		'\0~'
 	);
 	$letexte = preg_replace($cherche1, $remplace1, $letexte);