diff --git a/.gitattributes b/.gitattributes
index 086c60573ffe90849c735194b255c674be9878d1..1996afa1a49c81b95f9c45878e8faf092c2c8e69 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -161,10 +161,12 @@ ecrire/img_pack/heures-am.png -text
 ecrire/img_pack/heures-pm.png -text
 ecrire/img_pack/heures-tout.png -text
 ecrire/img_pack/historique-24.gif -text
+ecrire/img_pack/icones/abw-dist.png -text
 ecrire/img_pack/icones/ai-dist.png -text
 ecrire/img_pack/icones/aiff-dist.png -text
 ecrire/img_pack/icones/asf-dist.png -text
 ecrire/img_pack/icones/avi-dist.png -text
+ecrire/img_pack/icones/blend-dist.png -text
 ecrire/img_pack/icones/bmp-dist.png -text
 ecrire/img_pack/icones/bz2-dist.png -text
 ecrire/img_pack/icones/css-dist.png -text
@@ -181,7 +183,19 @@ ecrire/img_pack/icones/mid-dist.png -text
 ecrire/img_pack/icones/mov-dist.png -text
 ecrire/img_pack/icones/mp3-dist.png -text
 ecrire/img_pack/icones/mpg-dist.png -text
+ecrire/img_pack/icones/odb-dist.png -text
+ecrire/img_pack/icones/odc-dist.png -text
+ecrire/img_pack/icones/odf-dist.png -text
+ecrire/img_pack/icones/odi-dist.png -text
+ecrire/img_pack/icones/odm-dist.png -text
+ecrire/img_pack/icones/odp-dist.png -text
+ecrire/img_pack/icones/ods-dist.png -text
+ecrire/img_pack/icones/odt-dist.png -text
 ecrire/img_pack/icones/ogg-dist.png -text
+ecrire/img_pack/icones/otg-dist.png -text
+ecrire/img_pack/icones/otp-dist.png -text
+ecrire/img_pack/icones/ots-dist.png -text
+ecrire/img_pack/icones/ott-dist.png -text
 ecrire/img_pack/icones/pdf-dist.png -text
 ecrire/img_pack/icones/pgn-dist.png -text
 ecrire/img_pack/icones/png-dist.png -text
@@ -204,6 +218,7 @@ ecrire/img_pack/icones/tex-dist.png -text
 ecrire/img_pack/icones/tgz-dist.png -text
 ecrire/img_pack/icones/tif-dist.png -text
 ecrire/img_pack/icones/torrent-dist.png -text
+ecrire/img_pack/icones/ttf-dist.png -text
 ecrire/img_pack/icones/txt-dist.png -text
 ecrire/img_pack/icones/wav-dist.png -text
 ecrire/img_pack/icones/xcf-dist.png -text
diff --git a/ecrire/base/typedoc.php b/ecrire/base/typedoc.php
index d80167909c7ce647de048ce88b9c7257100d7240..7defd6facd909df1bced086d7ec6e586510a5a50 100644
--- a/ecrire/base/typedoc.php
+++ b/ecrire/base/typedoc.php
@@ -14,6 +14,8 @@
 //
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
+## cette API ne sait pas gerer les aliases ; a revoir...
+
 global $tables_images, $tables_sequences, $tables_documents, $tables_mime;
 
 $tables_images = array(
@@ -34,6 +36,7 @@ $tables_sequences = array(
 			  'aiff' => 'AIFF',
 			  'asf' => 'Windows Media',
 			  'avi' => 'Windows Media',
+			  'flv' => 'Flash Video',
 			  'mid' => 'Midi',
 			  'mng' => 'MNG',
 			  'mov' => 'QuickTime',
@@ -52,9 +55,11 @@ $tables_sequences = array(
 
 // Documents varies
 $tables_documents = array(
+			  'abw' => 'Abiword',
 			  'ai' => 'Adobe Illustrator',
 			  'bz2' => 'BZip',
 			  'bin' => 'Binary Data',
+			  'blend' => 'Blender',
 			  'c' => 'C source',
 			  'css' => 'Cascading Style Sheet',
 			  'deb' => 'Debian',
@@ -79,13 +84,29 @@ $tables_documents = array(
 			  'sxi' => 'OpenOffice Impress',
 			  'sxw' => 'OpenOffice',
 			  'tex' => 'LaTeX',
-			  'torrent' => 'BitTorrent',
 			  'tgz' => 'TGZ',
+			  'torrent' => 'BitTorrent',
+			  'ttf' => 'TTF Font',
 			  'txt' => 'texte',
 			  'xcf' => 'GIMP multi-layer',
 			  'xls' => 'Excel',
 			  'xml' => 'XML',
-			  'zip' => 'Zip'
+			  'zip' => 'Zip',
+
+			// open document format
+			'odt' => 'opendocument text',
+			'ods' => 'opendocument spreadsheet',
+			'odp' => 'opendocument presentation',
+			'odg' => 'opendocument graphics',
+			'odc' => 'opendocument chart',
+			'odf' => 'opendocument formula',
+			'odb' => 'opendocument database',
+			'odi' => 'opendocument image',
+			'odm' => 'opendocument text-master',
+			'ott' => 'opendocument text-template',
+			'ots' => 'opendocument spreadsheet-template',
+			'otp' => 'opendocument presentation-template',
+			'otg' => 'opendocument graphics-template'
 			  );
 
 $tables_mime = array(
@@ -103,6 +124,7 @@ $tables_mime = array(
 		'aiff'=>'audio/x-aiff',
 		'asf'=>'video/x-ms-asf',
 		'avi'=>'video/x-msvideo',
+		'flv' => 'video/x-flv',
 		'mid'=>'audio/midi',
 		'mng'=>'video/x-mng',
 		'mov'=>'video/quicktime',
@@ -120,7 +142,9 @@ $tables_mime = array(
 
 		// Documents varies
 		'ai' =>'application/illustrator',
+		'abw' =>'application/abiword',
 		'bin' => 'application/octet-stream', # le tout-venant
+		'blend' => 'application/x-blender',
 		'bz2'=>'application/x-bzip2',
 		'c'  =>'text/x-csrc',
 		'css'=>'text/css',
@@ -146,12 +170,28 @@ $tables_mime = array(
 		'sxi'=>'application/vnd.sun.xml.impress',
 		'sxw'=>'application/vnd.sun.xml.writer',
 		'tex'=>'text/x-tex',
-		'torrent' => 'application/x-bittorrent',
 		'tgz'=>'application/x-gtar',
+		'torrent' => 'application/x-bittorrent',
+		'ttf'=>'application/x-font-ttf',
 		'txt'=>'text/plain',
 		'xcf'=>'application/x-xcf',
 		'xls'=>'application/vnd.ms-excel',
 		'xml'=>'application/xml',
-		'zip'=>'application/zip'
+		'zip'=>'application/zip',
+
+		// open document format
+		'odt' => 'application/vnd.oasis.opendocument.text',
+		'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
+		'odp' => 'application/vnd.oasis.opendocument.presentation',
+		'odg' => 'application/vnd.oasis.opendocument.graphics',
+		'odc' => 'application/vnd.oasis.opendocument.chart',
+		'odf' => 'application/vnd.oasis.opendocument.formula',
+		'odb' => 'application/vnd.oasis.opendocument.database',
+		'odi' => 'application/vnd.oasis.opendocument.image',
+		'odm' => 'application/vnd.oasis.opendocument.text-master',
+		'ott' => 'application/vnd.oasis.opendocument.text-template',
+		'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template',
+		'otp' => 'application/vnd.oasis.opendocument.presentation-template',
+		'otg' => 'application/vnd.oasis.opendocument.graphics-template'
 	);
 ?>
diff --git a/ecrire/img_pack/icones/abw-dist.png b/ecrire/img_pack/icones/abw-dist.png
new file mode 100644
index 0000000000000000000000000000000000000000..ac1d7aa74519b270eee37648eec0ead2eeb75f63
Binary files /dev/null and b/ecrire/img_pack/icones/abw-dist.png differ
diff --git a/ecrire/img_pack/icones/blend-dist.png b/ecrire/img_pack/icones/blend-dist.png
new file mode 100644
index 0000000000000000000000000000000000000000..86b85f580ef0a1a1245c4b07ff74be29f83c2580
Binary files /dev/null and b/ecrire/img_pack/icones/blend-dist.png differ
diff --git a/ecrire/img_pack/icones/odb-dist.png b/ecrire/img_pack/icones/odb-dist.png
new file mode 100644
index 0000000000000000000000000000000000000000..ced77f0791450776b80466205729366aba984181
Binary files /dev/null and b/ecrire/img_pack/icones/odb-dist.png differ
diff --git a/ecrire/img_pack/icones/odc-dist.png b/ecrire/img_pack/icones/odc-dist.png
new file mode 100644
index 0000000000000000000000000000000000000000..c763d6eb93b3a95cfcb6f9aac7421c8408e53667
Binary files /dev/null and b/ecrire/img_pack/icones/odc-dist.png differ
diff --git a/ecrire/img_pack/icones/odf-dist.png b/ecrire/img_pack/icones/odf-dist.png
new file mode 100644
index 0000000000000000000000000000000000000000..492d750b866d92a7ee5a544f9fe5ddcf6a4f9516
Binary files /dev/null and b/ecrire/img_pack/icones/odf-dist.png differ
diff --git a/ecrire/img_pack/icones/odi-dist.png b/ecrire/img_pack/icones/odi-dist.png
new file mode 100644
index 0000000000000000000000000000000000000000..c1f88b709b5bce353a28d5374449f034902b7665
Binary files /dev/null and b/ecrire/img_pack/icones/odi-dist.png differ
diff --git a/ecrire/img_pack/icones/odm-dist.png b/ecrire/img_pack/icones/odm-dist.png
new file mode 100644
index 0000000000000000000000000000000000000000..3cb872de95358fdaaf96c8d4ff11014d0fcd7bf5
Binary files /dev/null and b/ecrire/img_pack/icones/odm-dist.png differ
diff --git a/ecrire/img_pack/icones/odp-dist.png b/ecrire/img_pack/icones/odp-dist.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd24b8067b564c802654d72b57895b6e51f3a6cb
Binary files /dev/null and b/ecrire/img_pack/icones/odp-dist.png differ
diff --git a/ecrire/img_pack/icones/ods-dist.png b/ecrire/img_pack/icones/ods-dist.png
new file mode 100644
index 0000000000000000000000000000000000000000..58bcb43244c526b11aea7a141e4cbe9045a70b0e
Binary files /dev/null and b/ecrire/img_pack/icones/ods-dist.png differ
diff --git a/ecrire/img_pack/icones/odt-dist.png b/ecrire/img_pack/icones/odt-dist.png
new file mode 100644
index 0000000000000000000000000000000000000000..f74dedaeac210265db703a9b94f754e49e2013cf
Binary files /dev/null and b/ecrire/img_pack/icones/odt-dist.png differ
diff --git a/ecrire/img_pack/icones/ogg-dist.png b/ecrire/img_pack/icones/ogg-dist.png
index 46ef666ec554b9611366c59e55baa1aed267c92d..ead3f62c3eb98c253acc57bd3a78c4073ff391f1 100644
Binary files a/ecrire/img_pack/icones/ogg-dist.png and b/ecrire/img_pack/icones/ogg-dist.png differ
diff --git a/ecrire/img_pack/icones/otg-dist.png b/ecrire/img_pack/icones/otg-dist.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e7c1a7bed3fc5a2c2c83b5ca617a185805823bc
Binary files /dev/null and b/ecrire/img_pack/icones/otg-dist.png differ
diff --git a/ecrire/img_pack/icones/otp-dist.png b/ecrire/img_pack/icones/otp-dist.png
new file mode 100644
index 0000000000000000000000000000000000000000..a89004868c77618d122fd3a0bb049209e7aa305d
Binary files /dev/null and b/ecrire/img_pack/icones/otp-dist.png differ
diff --git a/ecrire/img_pack/icones/ots-dist.png b/ecrire/img_pack/icones/ots-dist.png
new file mode 100644
index 0000000000000000000000000000000000000000..b7679d1cdb631974497236b217edaada9806faa2
Binary files /dev/null and b/ecrire/img_pack/icones/ots-dist.png differ
diff --git a/ecrire/img_pack/icones/ott-dist.png b/ecrire/img_pack/icones/ott-dist.png
new file mode 100644
index 0000000000000000000000000000000000000000..c451d72566e6f6a57b0edf62070a7054aed6fed5
Binary files /dev/null and b/ecrire/img_pack/icones/ott-dist.png differ
diff --git a/ecrire/img_pack/icones/ttf-dist.png b/ecrire/img_pack/icones/ttf-dist.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f6b4821317c1c8b90eff5c4309571e99e418d49
Binary files /dev/null and b/ecrire/img_pack/icones/ttf-dist.png differ
diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php
index fe9f67f5e4a2494e81db1e5d68b2849d9e46bb9b..80b5b407fae310c69759d480c6cb756ce7795908 100644
--- a/ecrire/inc/documents.php
+++ b/ecrire/inc/documents.php
@@ -473,7 +473,7 @@ function texte_upload_manuel($dir, $inclus = '') {
 		if (ereg("\.([^.]+)$", $f, $match)) {
 			$ext = strtolower($match[1]);
 			if (!isset($exts[$ext])) {
-				if ($ext == 'jpeg') $ext = 'jpg';
+				if ($ext == 'jpeg') $ext = 'jpg'; # cf. corriger_extension dans inc/getdocument
 				if (spip_abstract_fetsel('extension', 'spip_types_documents', "extension='$ext'" . (!$inclus ? '':  " AND inclus='$inclus'")))
 					$exts[$ext] = 'oui';
 				else $exts[$ext] = 'non';
diff --git a/ecrire/inc/getdocument.php b/ecrire/inc/getdocument.php
index 499f43204296499d2f805e4aeee6b60760e84a4e..cc9dcbf941a412eed05ea64818c9a3cc88399824 100644
--- a/ecrire/inc/getdocument.php
+++ b/ecrire/inc/getdocument.php
@@ -558,6 +558,7 @@ function decoder_type_image($type, $strict = false) {
 
 //
 // Corrige l'extension du fichier dans quelques cas particuliers
+// (a passer dans ecrire/base/typedoc)
 //
 
 function corriger_extension($ext) {