diff --git a/app/assets/javascripts/maps.js.coffee b/app/assets/javascripts/maps.js.coffee
index b194ff328e3f6de763c1f9721c2ef321d01669eb..61162bfe8224a6d5e62e8f8ea13ade5b9bfa708d 100644
--- a/app/assets/javascripts/maps.js.coffee
+++ b/app/assets/javascripts/maps.js.coffee
@@ -1,6 +1,6 @@
 $(document).ready ->
   $('.maps #map').each ->
-    map = L.map('map').setView [46.5, 4], 6
+    map = L.map 'map'
 
     L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png',
       attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a>'
@@ -14,6 +14,7 @@ $(document).ready ->
             layer.bindPopup feature.properties.popupContent
       ).addTo map
 
+      # Automatic focus to all displayed events
       map.fitBounds layer.getBounds()
 
   $('.events #map, .moderations #map').each ->
@@ -30,7 +31,7 @@ $(document).ready ->
         onEachFeature: (feature, layer) ->
           # Does this feature have a property named popupContent?
           if (feature.properties && feature.properties.popupContent)
-              layer.bindPopup(feature.properties.popupContent)
+            layer.bindPopup(feature.properties.popupContent)
       ).addTo map
 
     marker = L.marker([coord[0], coord[1]]).addTo map
diff --git a/app/models/event.rb b/app/models/event.rb
index b24ad50ca7be6592f3a01f083ca2e7a3349ab2da..7f4e9192e710b4e6b37102d9186b7b4f1a021122 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -17,8 +17,8 @@ class Event < ActiveRecord::Base
   validates :submitter, email: true
 
   geocoded_by :full_address, lookup: :nominatim
-  # after_validation :geocode, if: -> (obj) { obj.address_changed? }
-  after_validation :geocode
+  after_validation :geocode, if: -> (obj) { obj.address_changed? }
+  # after_validation :geocode
 
   scope :moderated, -> { where moderated: true }
   scope :unmoderated, -> { where moderated: false }
diff --git a/app/views/events/_form.html.haml b/app/views/events/_form.html.haml
index d03244d35b2c979a3a9c8393a8147a1376b29ca7..b9301c4d4bb0d2fa24cb19d80fab705d60d08b80 100644
--- a/app/views/events/_form.html.haml
+++ b/app/views/events/_form.html.haml
@@ -29,6 +29,9 @@
     = f.text_area :description, rows: 25, cols: 90
 
   .field
+    .helper
+      :markdown
+        #{t '.address_helper'}
     = f.label :address
     = f.text_field :address, size: 70
   .field
diff --git a/app/views/events/edit.html.haml b/app/views/events/edit.html.haml
index 0ff2eb9e3bf48c87716f610c99e990f3336246c2..b7a5cbf08ed7bc3cfb2afef6924ede3e4b7e998c 100644
--- a/app/views/events/edit.html.haml
+++ b/app/views/events/edit.html.haml
@@ -8,9 +8,13 @@
     =t '.warning'
 
 %fieldset
-  %legend=t '.preview'
+  %legend
+    %em.fa.fa-eye
+    =t '.preview'
   = render file: '/events/show'
 
 %fieldset
-  %legend=t '.edit'
+  %legend
+    %em.fa.fa-pencil
+    =t '.edit'
   = render '/events/form'
diff --git a/app/views/events/new.html.haml b/app/views/events/new.html.haml
index d38ffc513878ead81e5684e146b06b2f076df148..83888379e0603a3c25d435a6d95ea3a6d87ad818 100644
--- a/app/views/events/new.html.haml
+++ b/app/views/events/new.html.haml
@@ -4,7 +4,9 @@
 
 -  if @event.description
   %fieldset
-    %legend=t '.preview'
+    %legend
+      %em.fa.fa-eye
+      =t '.preview'
     = render file: '/events/show'
 
 - else
@@ -16,5 +18,7 @@
       #{t '.advises'}
 
 %fieldset
-  %legend=t '.edit'
+  %legend
+    %em.fa.fa-pencil
+    =t '.edit'
   = render 'form'
diff --git a/app/views/events/show.html.haml b/app/views/events/show.html.haml
index cd71306701ecdb3d4d8d73f47ff11a1dadcf7a5d..87d37942831855f57814e440c79acfa5830f666c 100644
--- a/app/views/events/show.html.haml
+++ b/app/views/events/show.html.haml
@@ -44,6 +44,13 @@
 - if @event.latitude && @event.longitude
   #map(latitude="#{@event.latitude}" longitude="#{@event.longitude}")
 
+- elsif controller.action_name != 'show'
+  %em.fa.fa-compress
+  %em
+    =raw t '.noMap'
+    %a(href="http://osm.org/search?query=#{@event.full_address}")
+      %img(src='http://www.openstreetmap.org/assets/osm_logo.png' alt='OSM logo' width='22px')
+
 %h3=t '.description'
 .description
   - markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true, tables: true)
diff --git a/app/views/layouts/_flash.html.haml b/app/views/layouts/_flash.html.haml
index b67eec4ef4a1f774b4d499885292a11898abf2d3..57624c4101df0c0077533a9d2f8f8b7c432df4e4 100644
--- a/app/views/layouts/_flash.html.haml
+++ b/app/views/layouts/_flash.html.haml
@@ -1,3 +1,3 @@
 #flash_messages
   - flash.each do |key, value|
-    .flash(class="#{key}")= value
+    .flash(class="#{key}")= raw value
diff --git a/app/views/moderations/edit.html.haml b/app/views/moderations/edit.html.haml
index dd9b026bd00a69a68998aa378d93c96886f51ff4..531264e74bedadb6eb36d141212ef1e075745095 100644
--- a/app/views/moderations/edit.html.haml
+++ b/app/views/moderations/edit.html.haml
@@ -6,9 +6,13 @@
   %h3.warning=t '.warning'
 
 %fieldset
-  %legend=t '.preview'
+  %legend
+    %em.fa.fa-eye
+    =t '.preview'
   = render file: '/events/show'
 
 %fieldset
-  %legend=t '.edit'
+  %legend
+    %em.fa.fa-pencil
+    =t '.edit'
   = render '/events/form'
diff --git a/config/locales/views/en.yml b/config/locales/views/en.yml
index 5f15b9db6d88684d8e3177c8afb2a9a5b2fcd76d..9aa94a5b9bc9d3b7c9c08cad0249cf0d252ce3d2 100644
--- a/config/locales/views/en.yml
+++ b/config/locales/views/en.yml
@@ -36,6 +36,7 @@ en:
       add_to_calendar: Add to my calendar
       at: At
       dateAndPlace: Date and place
+      noMap: No OpenStreetMap map could be associated to this address. You can test other syntaxes here
       description: Description
       infos: Informations
       actions: Actions
@@ -48,6 +49,14 @@ en:
         infos: Informations
     new:
       title: Propose an event
+      subtitle: This page lets you submit an event in the Agenda du Libre. It will not appear automatically in the Agenda, it will first be validated by a moderator. An electronic mail will be sent to the submitter's email when the event will be moderated.
+      advises: "# Important recommandations
+\n
+\n* The event must relate to **Free Software**. The agenda is not intended for other kinds of events.
+\n* Do **redact** the description, with complete sentences, rather than a telegraphic style.
+\n
+\nThe moderation team may modify the event's description, to complete it, make it more readable or agreable.
+"
       preview: Previsualisation
       edit: Edition
     create:
@@ -66,6 +75,13 @@ en:
     update:
       ok: Your event was updated
     form:
+      title_helper: Describe in less than 5 words your event, without the address, city or date
+      description_helper: Describe with as much precision as possible your event
+      address_helper: _Associated to the city and region, it will generate an [OpenStreetMap](http://www.openstreetmap.org) map, displayed alongside the event_
+      url_helper: _**Direct** link to a page with more information on the event (detailed location, precise time, program...)_
+      contact_helper: _Contact's email address, obfuscated so that spammers won't understand it_
+      submitter_helper: _Submitter's email address. It will only be used by the moderators to contact the person who proposed the event, to inform her about her acceptation or rejection. If this address is absent, the contact's will be used_
+      tags_helper: _Tags for the event. Tags are separated by spaces. A tag can only contain lower case letters, numbers and hyphens. Among the tags, indicate the organising association's or associations' names. Do not indicate the city or region._
       save: Validate
       visualise: Visualise
     cancel:
diff --git a/config/locales/views/fr.yml b/config/locales/views/fr.yml
index 481f29d139e9739787635c47de95278fdd589124..8522aec260a2ed6bcbdd074f486d87fcb9feb78b 100644
--- a/config/locales/views/fr.yml
+++ b/config/locales/views/fr.yml
@@ -36,6 +36,7 @@ fr:
       add_to_calendar: Ajouter à mon calendrier
       at: À
       dateAndPlace: Date et lieu
+      noMap: Aucune carte OpenStreetMap n'a pu être associée à cette adresse. Vous pouvez tester d'autres syntaxes ici
       description: Description
       infos: Informations
       actions: Actions
@@ -48,6 +49,7 @@ fr:
         infos: Informations
     new:
       title: Soumettre un événement
+      subtitle: Cette page permet de soumettre un événement dans l'Agenda du Libre. Celui-ci n'apparaîtra pas automatiquement dans l'Agenda, il sera tout d'abord validé par un modérateur. Un courrier électronique sera envoyé à l'adresse e-mail du soumetteur donnée ci-dessous lorsque l'événement aura été modéré.
       preview: Prévisualisation
       edit: Édition
     create:
@@ -67,6 +69,7 @@ fr:
     update:
       ok: Votre événement a été mis à jour
     form:
+      address_helper: "*Associée à la ville et la région, elle générerera une carte [OpenStreetMap](http://www.openstreetmap.org), sera affichée aux côtés de l'événement*"
       save: Valider
       visualise: Visualiser
     cancel:
diff --git a/db/seeds.rb b/db/seeds.rb
index 7e565ef93dfe0f1ad344f26e20f9a4cbe9f87aab..d3b24a36a9f637d2251b8135a1d2f26bca5fd9a5 100644
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -38,7 +38,7 @@ Ces quelques recommandations vous permettront de proposer un événement qui ser
 * Donnez une description **rédigée** de l'événement, avec des phrases, plutôt qu'un style télégraphique.
 * Commencez la description de votre événement par une phrase reprenant les informations principales, telle que: _«L'association [Zorglub](http://www.asso-zorglub.org) organise une conférence sur le thème des **modèles économiques du Logiciel Libre** le samedi 21 mars de 18h à 20h à la médiathèque Champillion de Montpellier.»_
 * Pensez que le lecteur peut ne pas connaître votre association, le logiciel dont il sera question, etc., donc donnez à chaque fois toutes les informations nécessaires. Rappelez **le principe de l'événement, le public visé, le lieu exact, la date, l'heure**, même si il est régulier (repas, rencontre régulière, etc.) et que vous avez déjà soumis un événement du même type dans l'Agenda.
-* **Égayez au maximum la description** de votre événement: lien vers le site de votre association, vers le logiciel ou le langage dont il sera question, vers les organismes partenaires, etc. Pour cela, utilisez les balises HTML pour mettre en gras, en italique, faire des paragraphes et des liens.
+* **Égayez au maximum la description** de votre événement: lien vers le site de votre association, vers le logiciel ou le langage dont il sera question, vers les organismes partenaires, etc.
 * Ne mettez pas l'intégralité des mots en majuscule, que ce soit dans le titre, le nom de la ville ou la description.
 * Donnez l'**adresse directe** d'un site Web donnant plus d'informations sur l'événement. Si l'adresse est la page d'accueil du site de votre organisation, veillez à ce que l'événement soit clairement visible, et que le lecteur n'ait pas à chercher trop longtemps avant de trouver l'information qu'il cherche.
 * La description de l'événement ne doit pas ressembler à une publicité éhontée pour votre entreprise, projet ou logiciel. Le ton d'un communiqué de presse, par exemple, ne convient pas pour l'Agenda du Libre.
@@ -53,12 +53,7 @@ Si vous soumettez souvent un événement régulier dans l'Agenda du Libre, vous
     value: '**Décrivez en moins de 5 mots votre événement, sans y indiquer le lieu, la ville ou la date.**' },
 
   { locale: 'fr', key: 'events.form.description_helper',
-    value: "**Décrivez de la manière la plus complète possible votre événement.**
-
-*Les balises HTML autorisées sont `<p>`, `<b>`, `<i>`, `<ul>`, `<ol>`, `<li>`, `<br/>`, `<a>`. Merci d'utiliser ces balises pour formater la description de votre événement.*
-
-*Veillez à utiliser les balises `<p>` pour formater les paragraphes, et non la balise `<br/>`.*
-" },
+    value: '**Décrivez de la manière la plus complète possible votre événement.**' },
 
   { locale: 'fr', key: 'events.form.url_helper',
     value: "_Lien **direct** vers une page donnant plus d'informations sur l'événement (lieu précis, horaire précis, programme précis...)_" },
@@ -67,7 +62,7 @@ Si vous soumettez souvent un événement régulier dans l'Agenda du Libre, vous
     value: '*Adresse e-mail de contact. Elle sera affichée de manière peu compréhensible par les spammeurs.*' },
 
   { locale: 'fr', key: 'events.form.submitter_helper',
-    value: "*Adresse e-mail du soumetteur de l'événement. Elle ne sera utilisée que par les modérateurs pour contacter la personne ayant proposé l'événement, pour lui informer de sa validation ou de son rejet. Si cette adresse n'est pas présente, l'adresse de contact sera utilisée*" },
+    value: "*Adresse e-mail du soumetteur de l'événement. Elle ne sera utilisée que par les modérateurs pour contacter la personne ayant proposé l'événement, pour l'informer de sa validation ou de son rejet. Si cette adresse n'est pas présente, l'adresse de contact sera utilisée*" },
 
   { locale: 'fr', key: 'events.form.tags_helper',
     value: "*Tags pour l'événement. Les tags sont séparés par des espaces. Un tag ne peut contenir que des lettres minuscules, des chiffres et des tirets.*