Index: lib/ezi18n/classes/ezchartransform.php
===================================================================
--- lib/ezi18n/classes/ezchartransform.php	(revision 23340)
+++ lib/ezi18n/classes/ezchartransform.php	(working copy)
@@ -534,7 +534,7 @@
         $sep  = eZCharTransform::wordSeparator();
         $sepQ = preg_quote( $sep );
         $text = preg_replace( array( "#[^a-zA-Z0-9_!.-]+#",
-                                     "#^[.]+|[.]+$#", # Remove dots at beginning/end
+                                     "#^[.]+|[!.]+$#", # Remove dots at beginning/end
                                      "#\.\.+#", # Remove double dots
                                      "#[{$sepQ}]+#", # Turn multiple separators into one
                                      "#^[{$sepQ}]+|[{$sepQ}]+$#" ), # Strip separator from beginning/end
@@ -562,7 +562,7 @@
         if ( $sep != "-" )
             $prepost .= "-";
         $text = preg_replace( array( "#[ \\\\%\#&;/:=?\[\]()+]+#",
-                                     "#^[.]+|[.]+$#", # Remove dots at beginning/end
+                                     "#^[.]+|[!.]+$#", # Remove dots at beginning/end
                                      "#\.\.+#", # Remove double dots
                                      "#[{$sepQ}]+#", # Turn multiple separators into one
                                      "#^[{$prepost}]+|[{$prepost}]+$#" ),
