[plm] 04/10: Imported Upstream version 2.2.1+repack

Martin Quinson mquinson at alioth.debian.org
Sun Sep 8 21:27:46 UTC 2013


This is an automated email from the git hooks/post-receive script.

mquinson pushed a commit to branch debian-debian
in repository plm.

commit f0a283a77192d05b764ea1c488b97967d6527d34
Author: Martin Quinson <martin.quinson at loria.fr>
Date:   Sun Sep 8 22:56:39 2013 +0200

    Imported Upstream version 2.2.1+repack
---
 ChangeLog                                          |   16 +
 build.xml                                          |   10 +-
 img/logo.png                                       |  Bin 71746 -> 36431 bytes
 lib/l10n-engine/en.po                              |  364 ++++++++++----------
 lib/l10n-engine/fr.po                              |  359 +++++++++----------
 lib/l10n-engine/plm.pot                            |  343 +++++++++---------
 lib/l10n/fr.po                                     |  172 +++++----
 lib/l10n/plm.pot                                   |   86 +++--
 lib/resources/plm.configuration.properties         |    6 +-
 src/lessons/sort/selection/AlgSelectionSort.java   |    2 +-
 .../turmites/helloturmite/HelloTurmite.fr.html     |    2 +-
 .../turmites/helloturmite/HelloTurmite.html        |    2 +-
 src/lessons/welcome/array/basics/Array2.fr.html    |    4 +-
 src/lessons/welcome/bdr/BDR.fr.html                |   20 +-
 src/lessons/welcome/bdr/BDR.html                   |   18 +-
 src/lessons/welcome/bdr/BDR2.fr.html               |   34 +-
 src/lessons/welcome/bdr/BDR2.html                  |   34 +-
 .../welcome/environment/Environment.fr.html        |    7 +-
 src/lessons/welcome/environment/Environment.html   |    2 +-
 .../welcome/instructions/Instructions.fr.html      |    4 +-
 src/lessons/welcome/loopdowhile/Poucet.fr.html     |    6 +-
 src/lessons/welcome/loopdowhile/Poucet.html        |    5 +-
 src/lessons/welcome/loopfor/LoopFor.java           |    2 +-
 src/lessons/welcome/loopfor/LoopStairs.fr.html     |    7 +-
 src/lessons/welcome/loopfor/LoopStairs.html        |    5 +-
 src/lessons/welcome/loopwhile/BaggleSeeker.java    |    2 +-
 .../welcome/methods/args/MethodsArgs.fr.html       |    9 +-
 src/lessons/welcome/methods/basics/Methods.java    |    2 +-
 .../welcome/methods/flowerpot/FlowerPotEntity.py   |   32 +-
 .../methods/picture/PictureMono2Entity.java        |   17 +-
 .../methods/picture/PictureMono2Entity.scala       |   17 +-
 .../methods/picture/PictureMono3Entity.java        |   17 +-
 .../methods/picture/PictureMono3Entity.scala       |   17 +-
 .../welcome/methods/picture/PictureMonoEntity.java |   21 +-
 .../methods/picture/PictureMonoEntity.scala        |   17 +-
 .../methods/returning/MethodsReturning.java        |    6 +-
 src/lessons/welcome/methods/slug/SlugHunting.java  |    4 +-
 src/lessons/welcome/methods/slug/SlugSnail.java    |    4 +-
 .../welcome/methods/slug/SlugTracking.fr.html      |    5 +-
 src/lessons/welcome/methods/slug/SlugTracking.html |    5 +-
 src/lessons/welcome/methods/slug/SlugTracking.java |    4 +-
 .../welcome/methods/slug/SlugTrackingEntity.java   |    5 -
 .../welcome/methods/slug/SlugTrackingEntity.scala  |    4 -
 src/lessons/welcome/variables/Variables.java       |    2 +-
 src/plm/core/model/Game.java                       |   10 +-
 src/plm/core/model/LessonRunner.java               |   93 ++---
 src/plm/core/model/lesson/Exercise.java            |    2 +-
 .../model/lesson/ExerciseTemplatingEntity.java     |    7 +-
 src/plm/core/ui/ExerciseView.java                  |   36 +-
 src/plm/core/ui/MainFrame.java                     |   14 +-
 src/plm/core/ui/WorldView.java                     |   10 -
 .../ui/editor/buggleeditor}/EditionListener.java   |    2 +-
 .../ui/editor/buggleeditor}/Editor.java            |    2 +-
 .../ui/editor/buggleeditor}/MainFrame.java         |    2 +-
 .../ui/editor/buggleeditor}/MapEditorApp.java      |    2 +-
 .../ui/editor/buggleeditor}/MapView.java           |    6 +-
 .../ui/editor/buggleeditor}/PropertiesEditor.java  |    7 +-
 src/plm/universe/Entity.java                       |    1 -
 src/plm/universe/bugglequest/AbstractBuggle.java   |   11 +-
 src/plm/universe/bugglequest/Baggle.java           |   69 ----
 src/plm/universe/bugglequest/BuggleWorld.java      |   11 +-
 src/plm/universe/bugglequest/BuggleWorldCell.java  |   71 ++--
 .../bugglequest/mapeditor/package-info.java        |    5 -
 .../universe/bugglequest/ui/BuggleWorldView.java   |    9 +-
 src/plm/universe/sort/SortingWorld.java            |   24 +-
 65 files changed, 1046 insertions(+), 1048 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index bb73ebc..b8755ab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+20130908: Release 2.2.1: C'mon, dudes. Break that one if you dare.
+
+  * Allow a creative mode, perfectly adapted to open LOGO exercises.
+    The world is never reset nor compared to the "expected" output.
+    
+  * Fix the dist build to not take all files copied by eclipse (fix #101)
+  * welcome.PictureMono*: fix the templating of run() (fix #102)
+  * welcome.Instructions: Fix a translation error (fix #103)
+  * welcome.slugTracking: Mention also in scala and python how to test
+    whether the ground color is green (fix #104)
+  * Bat templating didn't even compile in Java and Scala, oops (fix #105)
+  * turmite.hello: fix mission text: left=2; right=8
+  * welcome.Poucet: specify how intersection cells must be counted
+  * welcome.LoopStairs: say that there is no need to manually fiddle
+    with the colors. 
+
 20130830: Release 2.2. The funny times are over
 
   * Rebrand JLM into PLM (Programmer's Learning Machine)
diff --git a/build.xml b/build.xml
index ab77e3a..626113e 100644
--- a/build.xml
+++ b/build.xml
@@ -31,9 +31,9 @@
     <property name="base.dir" value="."/>
     <property name="dist.dir" value="${base.dir}/dist"/>
     <property name="lib.dir" value="${base.dir}/lib"/>
-    <property name="classes.dir" value="${base.dir}/bin"/>
     <property name="src.dir" value="${base.dir}/src"/>
     <property name="site.dir" value="${base.dir}/site"/>
+    <property name="classes.dir" value="${site.dir}/bin"/>
 
     <property file="${base.dir}/keystore.properties"/>
 
@@ -45,10 +45,9 @@
     </path>
 
     <target name="clean" description="clean project">
-        <delete dir="${classes.dir}"/>
-        <delete dir="${dist.dir}"/>
         <delete dir="${site.dir}/lib"/>
         <delete dir="${site.dir}/po"/>
+        <delete dir="${site.dir}/bin"/>
     </target>
 
     <target name="compile" description="compile all source files">
@@ -66,6 +65,7 @@
             </manifest>
             <fileset dir="${classes.dir}" excludes="**/.gitignore **/*.java **/*.css **/*.html"/>
             <fileset dir="${src.dir}" includes="**/*.py **/*.scala **/*.java **/*.html **/*.css **/*.png **/*.map" excludes="**/.gitignore"/>
+            <fileset dir="${base.dir}" includes="img/*/*.png img/*.png" excludes="*"/>
             <fileset dir="${lib.dir}" excludes="**/*.jar *.pl lib/l10n/* lib/l10n-engine/*"/>
             <zipfileset excludes="META-INF/*.SF" src="${lib.dir}/twitter4j-core-3.0.3.jar" />    
             <zipfileset excludes="META-INF/*.SF" src="${lib.dir}/jsyntaxpane-0.9.6~r156.jar" />
@@ -100,6 +100,7 @@
             </manifest>
             <fileset dir="${classes.dir}" excludes="**/.gitignore **/*.java **/*.css **/*.html"/>
             <fileset dir="${src.dir}" includes="**/*.py **/*.scala **/*.java **/*.html **/*.css **/*.png **/*.map" excludes="**/.gitignore"/>
+            <fileset dir="${base.dir}" includes="img/*/*.png img/*.png" excludes="*"/>
             <fileset dir="${lib.dir}" excludes="**/*.jar *.pl lib/l10n/* lib/l10n-engine/*"/>
             <zipfileset excludes="META-INF/*.SF" src="${lib.dir}/twitter4j-core-3.0.3.jar" />    
             <zipfileset excludes="META-INF/*.SF" src="${lib.dir}/jsyntaxpane-0.9.6~r156.jar" />
@@ -129,6 +130,7 @@
             </manifest>
             <fileset dir="${classes.dir}" excludes="**/.gitignore **/*.java **/*.css **/*.html"/>
             <fileset dir="${src.dir}" includes="**/*.java **/*.py **/*.html **/*.css **/*.map **/*.png" excludes="**/.gitignore"/> 
+            <fileset dir="${base.dir}" includes="img/*/*.png img/*.png" excludes="*"/>
             <fileset dir="${lib.dir}" excludes="*.jar"/>
         </jar>
         <copy todir="${site.dir}/lib">
@@ -148,7 +150,7 @@
         <javadoc 
             destdir="${site.dir}/javadoc/">
             <fileset dir="${src.dir}/plm" includes="**/*.java" />
-            <fileset dir="${src.dir}/universe" includes="**/*.java" />
+            <fileset dir="${src.dir}/lessons" includes="**/*.java" />
         </javadoc>
     </target>
 
diff --git a/img/logo.png b/img/logo.png
index 23512b3..b1de029 100644
Binary files a/img/logo.png and b/img/logo.png differ
diff --git a/lib/l10n-engine/en.po b/lib/l10n-engine/en.po
index c6e3b87..6c9aa87 100644
--- a/lib/l10n-engine/en.po
+++ b/lib/l10n-engine/en.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-30 14:51+0200\n"
+"POT-Creation-Date: 2013-09-08 22:40+0200\n"
 "PO-Revision-Date: 2013-05-30 11:25+0200\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -496,22 +496,22 @@ msgstr ""
 msgid "Python is missing"
 msgstr ""
 
-#: src/plm/core/model/Game.java:1058
+#: src/plm/core/model/Game.java:1066
 #, java-format
 msgid "{0} is not writable"
 msgstr ""
 
-#: src/plm/core/model/Game.java:1062
+#: src/plm/core/model/Game.java:1070
 #, java-format
 msgid "{0} is not a directory"
 msgstr ""
 
-#: src/plm/core/model/Game.java:1069
+#: src/plm/core/model/Game.java:1077
 #, java-format
 msgid "Cannot create {0}"
 msgstr ""
 
-#: src/plm/core/model/Game.java:1075
+#: src/plm/core/model/Game.java:1083
 #, java-format
 msgid "Impossible to find a path for PLM data. Tested {0}"
 msgstr ""
@@ -524,7 +524,7 @@ msgstr "Asking to the teacher for help"
 msgid "Cancel call for help to the teacher"
 msgstr "Cancel call for help to the teacher"
 
-#: src/plm/core/model/LessonRunner.java:91
+#: src/plm/core/model/LessonRunner.java:94
 #, fuzzy, java-format
 msgid ""
 "Congratulations, you passed this exercise.\n"
@@ -533,21 +533,21 @@ msgstr ""
 "Congratulations, you passed this exercise.\n"
 " {0} tests passed.\n"
 
-#: src/plm/core/model/LessonRunner.java:93
-#: src/plm/core/model/LessonRunner.java:99
-#: src/plm/core/model/LessonRunner.java:108
-#: src/plm/core/model/LessonRunner.java:114
+#: src/plm/core/model/LessonRunner.java:96
+#: src/plm/core/model/LessonRunner.java:102
+#: src/plm/core/model/LessonRunner.java:111
+#: src/plm/core/model/LessonRunner.java:117
 msgid "Exercice passed \\o/"
 msgstr "Exercice passed \\o/"
 
-#: src/plm/core/model/LessonRunner.java:97
+#: src/plm/core/model/LessonRunner.java:100
 #, fuzzy
 msgid "Congratulations, you passed this exercise."
 msgstr ""
 "Congratulations, you passed this exercise.\n"
 " {0} tests passed.\n"
 
-#: src/plm/core/model/LessonRunner.java:107
+#: src/plm/core/model/LessonRunner.java:110
 #, fuzzy, java-format
 msgid ""
 "Congratulations, you passed this exercise.\n"
@@ -556,7 +556,7 @@ msgid ""
 msgstr ""
 "Congratulations, you passed this test. Which exercise will you do now?\n"
 
-#: src/plm/core/model/LessonRunner.java:113
+#: src/plm/core/model/LessonRunner.java:116
 #, fuzzy
 msgid ""
 "Congratulations, you passed this exercise.\n"
@@ -824,31 +824,36 @@ msgstr "You didn't manage to reach your objective."
 msgid "Compilation error"
 msgstr "Compilation error"
 
-#: src/plm/core/ui/ExerciseView.java:74
-msgid "Switch the displayed world"
-msgstr "Switch the displayed world"
-
-#: src/plm/core/ui/ExerciseView.java:84
-msgid "Change the speed of execution"
-msgstr "Change the speed of execution"
-
-#: src/plm/core/ui/ExerciseView.java:91 src/plm/core/ui/ExerciseView.java:163
+#: src/plm/core/ui/ExerciseView.java:92 src/plm/core/ui/ExerciseView.java:161
+#: src/plm/core/ui/ExerciseView.java:218
 msgid "World"
 msgstr "World"
 
-#: src/plm/core/ui/ExerciseView.java:92 src/plm/core/ui/ExerciseView.java:164
-msgid "Current world"
-msgstr "Current world"
+#: src/plm/core/ui/ExerciseView.java:92 src/plm/core/ui/ExerciseView.java:161
+#: src/plm/core/ui/ExerciseView.java:219
+#, fuzzy
+msgid "The world as it is right now"
+msgstr "World cannot be reset right now"
 
-#: src/plm/core/ui/ExerciseView.java:96 src/plm/core/ui/ExerciseView.java:166
+#: src/plm/core/ui/ExerciseView.java:96 src/plm/core/ui/ExerciseView.java:163
+#: src/plm/core/ui/ExerciseView.java:220
 msgid "Objective"
 msgstr "Objective"
 
-#: src/plm/core/ui/ExerciseView.java:97 src/plm/core/ui/ExerciseView.java:167
-msgid "Target world"
-msgstr "Target world"
+#: src/plm/core/ui/ExerciseView.java:96 src/plm/core/ui/ExerciseView.java:163
+#: src/plm/core/ui/ExerciseView.java:221
+msgid "The world as it should be"
+msgstr ""
 
-#: src/plm/core/ui/ExerciseView.java:105
+#: src/plm/core/ui/ExerciseView.java:215
+msgid "Switch the displayed world"
+msgstr "Switch the displayed world"
+
+#: src/plm/core/ui/ExerciseView.java:216
+msgid "Change the speed of execution"
+msgstr "Change the speed of execution"
+
+#: src/plm/core/ui/ExerciseView.java:217
 msgid "Switch the entity"
 msgstr "Switch the entity"
 
@@ -911,7 +916,7 @@ msgstr "Where error and other messages get written"
 #. === FILE menu ===
 #. for now: leave the calls to i18n.tr: that way one is sure to get all the localized strings...
 #. Menus
-#: src/plm/core/ui/MainFrame.java:152 src/plm/core/ui/MainFrame.java:647
+#: src/plm/core/ui/MainFrame.java:152 src/plm/core/ui/MainFrame.java:658
 msgid "File"
 msgstr "File"
 
@@ -919,120 +924,124 @@ msgstr "File"
 msgid "File related functions"
 msgstr "File related functions"
 
-#: src/plm/core/ui/MainFrame.java:157 src/plm/core/ui/MainFrame.java:648
+#: src/plm/core/ui/MainFrame.java:157 src/plm/core/ui/MainFrame.java:659
 msgid "Load lesson"
 msgstr "Load lesson"
 
-#: src/plm/core/ui/MainFrame.java:179 src/plm/core/ui/MainFrame.java:649
+#: src/plm/core/ui/MainFrame.java:179 src/plm/core/ui/MainFrame.java:660
 msgid "Switch lesson"
 msgstr "Switch lesson"
 
-#: src/plm/core/ui/MainFrame.java:191 src/plm/core/ui/MainFrame.java:416
-#: src/plm/core/ui/MainFrame.java:644 src/plm/core/ui/MainFrame.java:650
+#: src/plm/core/ui/MainFrame.java:191 src/plm/core/ui/MainFrame.java:427
+#: src/plm/core/ui/MainFrame.java:655 src/plm/core/ui/MainFrame.java:661
 msgid "Switch exercise"
 msgstr "Switch exercise"
 
-#: src/plm/core/ui/MainFrame.java:204 src/plm/core/ui/MainFrame.java:652
+#: src/plm/core/ui/MainFrame.java:204 src/plm/core/ui/MainFrame.java:663
 msgid "Teacher Console"
 msgstr "Teacher Console"
 
 #. Menu item to change the current Course
-#: src/plm/core/ui/MainFrame.java:223 src/plm/core/ui/MainFrame.java:653
+#: src/plm/core/ui/MainFrame.java:223 src/plm/core/ui/MainFrame.java:664
 msgid "Choose your course"
 msgstr "Choose your course"
 
-#: src/plm/core/ui/MainFrame.java:242 src/plm/core/ui/MainFrame.java:654
+#: src/plm/core/ui/MainFrame.java:242 src/plm/core/ui/MainFrame.java:665
 msgid "Quit"
 msgstr "Quit"
 
 #. === Edit menu ===
-#: src/plm/core/ui/MainFrame.java:250 src/plm/core/ui/MainFrame.java:656
+#: src/plm/core/ui/MainFrame.java:250 src/plm/core/ui/MainFrame.java:667
 msgid "Session"
 msgstr "Session"
 
-#: src/plm/core/ui/MainFrame.java:255 src/plm/core/ui/MainFrame.java:658
+#: src/plm/core/ui/MainFrame.java:255 src/plm/core/ui/MainFrame.java:669
 msgid "Revert Exercise"
 msgstr "Revert Exercise"
 
-#: src/plm/core/ui/MainFrame.java:258 src/plm/core/ui/MainFrame.java:659
+#: src/plm/core/ui/MainFrame.java:258 src/plm/core/ui/MainFrame.java:670
 msgid "Export Session Cache"
 msgstr "Export Session Cache"
 
-#: src/plm/core/ui/MainFrame.java:261 src/plm/core/ui/MainFrame.java:660
+#: src/plm/core/ui/MainFrame.java:261 src/plm/core/ui/MainFrame.java:671
 msgid "Import Session Cache"
 msgstr "Import Session Cache"
 
-#: src/plm/core/ui/MainFrame.java:265 src/plm/core/ui/MainFrame.java:661
+#: src/plm/core/ui/MainFrame.java:265 src/plm/core/ui/MainFrame.java:672
 msgid "Debug mode"
 msgstr "Debug mode"
 
+#: src/plm/core/ui/MainFrame.java:276 src/plm/core/ui/MainFrame.java:673
+msgid "Creative mode"
+msgstr ""
+
 #. === Language menu ===
-#: src/plm/core/ui/MainFrame.java:278 src/plm/core/ui/MainFrame.java:664
+#: src/plm/core/ui/MainFrame.java:289 src/plm/core/ui/MainFrame.java:676
 msgid "Language"
 msgstr "Language"
 
 #. === Programming language changing ===
-#: src/plm/core/ui/MainFrame.java:283 src/plm/core/ui/MainFrame.java:665
+#: src/plm/core/ui/MainFrame.java:294 src/plm/core/ui/MainFrame.java:677
 msgid "Human"
 msgstr "Human"
 
-#: src/plm/core/ui/MainFrame.java:297 src/plm/core/ui/MainFrame.java:666
+#: src/plm/core/ui/MainFrame.java:308 src/plm/core/ui/MainFrame.java:678
 msgid "Computer"
 msgstr "Computer"
 
 #. === Help menu ===
-#: src/plm/core/ui/MainFrame.java:301 src/plm/core/ui/MainFrame.java:668
+#: src/plm/core/ui/MainFrame.java:312 src/plm/core/ui/MainFrame.java:680
 msgid "Help"
 msgstr "Help"
 
-#: src/plm/core/ui/MainFrame.java:305 src/plm/core/ui/MainFrame.java:669
+#: src/plm/core/ui/MainFrame.java:316 src/plm/core/ui/MainFrame.java:681
 msgid "Provide feedback"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:315 src/plm/core/ui/MainFrame.java:670
+#: src/plm/core/ui/MainFrame.java:326 src/plm/core/ui/MainFrame.java:682
 msgid "About this lesson"
 msgstr "About this lesson"
 
-#: src/plm/core/ui/MainFrame.java:328 src/plm/core/ui/MainFrame.java:671
+#: src/plm/core/ui/MainFrame.java:339 src/plm/core/ui/MainFrame.java:683
 msgid "About this world"
 msgstr "About this world"
 
-#: src/plm/core/ui/MainFrame.java:344 src/plm/core/ui/MainFrame.java:673
+#: src/plm/core/ui/MainFrame.java:355 src/plm/core/ui/MainFrame.java:685
 msgid "About PLM"
 msgstr "About PLM"
 
 #. Buttons
-#: src/plm/core/ui/MainFrame.java:377 src/plm/core/ui/MainFrame.java:638
+#: src/plm/core/ui/MainFrame.java:388 src/plm/core/ui/MainFrame.java:649
 msgid "Run"
 msgstr "Run"
 
-#: src/plm/core/ui/MainFrame.java:381 src/plm/core/ui/MainFrame.java:479
-#: src/plm/core/ui/MainFrame.java:639
+#: src/plm/core/ui/MainFrame.java:392 src/plm/core/ui/MainFrame.java:490
+#: src/plm/core/ui/MainFrame.java:650
 msgid "Step"
 msgstr "Step"
 
-#: src/plm/core/ui/MainFrame.java:386 src/plm/core/ui/MainFrame.java:640
+#: src/plm/core/ui/MainFrame.java:397 src/plm/core/ui/MainFrame.java:651
 msgid "Stop"
 msgstr "Stop"
 
-#: src/plm/core/ui/MainFrame.java:392 src/plm/core/ui/MainFrame.java:641
+#: src/plm/core/ui/MainFrame.java:403 src/plm/core/ui/MainFrame.java:652
 msgid "Reset"
 msgstr "Reset"
 
-#: src/plm/core/ui/MainFrame.java:398 src/plm/core/ui/MainFrame.java:642
+#: src/plm/core/ui/MainFrame.java:409 src/plm/core/ui/MainFrame.java:653
 msgid "Demo"
 msgstr "Demo"
 
-#: src/plm/core/ui/MainFrame.java:404 src/plm/core/ui/MainFrame.java:643
+#: src/plm/core/ui/MainFrame.java:415 src/plm/core/ui/MainFrame.java:654
 #: src/plm/core/ui/action/HelpMe.java:37
 msgid "Call for Help"
 msgstr "Call for Help"
 
-#: src/plm/core/ui/MainFrame.java:464
+#: src/plm/core/ui/MainFrame.java:475
 msgid "Next"
 msgstr "Next"
 
-#: src/plm/core/ui/MainFrame.java:657
+#: src/plm/core/ui/MainFrame.java:668
 msgid "Lesson related functions"
 msgstr "Lesson related functions"
 
@@ -1144,7 +1153,7 @@ msgid "PLM - Mission Editor"
 msgstr ""
 
 #: src/plm/core/ui/editor/MissionEditor.java:173
-#: src/plm/universe/bugglequest/mapeditor/MainFrame.java:242
+#: src/plm/core/ui/editor/buggleeditor/MainFrame.java:242
 #, java-format
 msgid "Error while reading {0}"
 msgstr ""
@@ -1193,6 +1202,94 @@ msgstr ""
 msgid "Quit Map Editor"
 msgstr ""
 
+#: src/plm/core/ui/editor/buggleeditor/MainFrame.java:176
+msgid "Create New Map"
+msgstr ""
+
+#: src/plm/core/ui/editor/buggleeditor/MainFrame.java:228
+msgid "Open Map..."
+msgstr ""
+
+#: src/plm/core/ui/editor/buggleeditor/MainFrame.java:234
+#, fuzzy
+msgid "PLM map files"
+msgstr "PLM lesson files"
+
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:57
+msgid "Property"
+msgstr ""
+
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:57
+msgid "Value"
+msgstr ""
+
+#. The editor for the name
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:71
+#, fuzzy
+msgid "World name"
+msgstr "World"
+
+#. ---------- world width ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:83
+#, fuzzy
+msgid "World width"
+msgstr "World"
+
+#. ---------- world height ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:103
+msgid "World height"
+msgstr ""
+
+#. ---------- selected cell ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:123
+msgid "Selected cell X"
+msgstr ""
+
+#. ---------- selected cell ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:145
+msgid "Selected cell Y"
+msgstr ""
+
+#. ---------- Ground color ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:166
+msgid "Ground color (name or r/g/b)"
+msgstr ""
+
+#. ---------- top wall cell ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:183
+msgid "Top wall?"
+msgstr ""
+
+#. ---------- left wall cell ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:205
+msgid "Left wall?"
+msgstr ""
+
+#. ---------- have baggle ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:227
+msgid "Baggle?"
+msgstr ""
+
+#. ---------- Buggle name ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:258
+msgid "Buggle name"
+msgstr ""
+
+#. ---------- Buggle direction ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:269
+msgid "Buggle direction (N|S|E|W)"
+msgstr ""
+
+#. ---------- Buggle color ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:298
+msgid "Buggle color (name or r/g/b)"
+msgstr ""
+
+#. ---------- Buggle color ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:314
+msgid "Brush color (name or r/g/b)"
+msgstr ""
+
 #: src/plm/universe/Entity.java:176
 #, java-format
 msgid ""
@@ -1259,6 +1356,7 @@ msgid "You tried to set Y to {0}, but the maximal Y in this world is {1}."
 msgstr ""
 
 #: src/plm/universe/bugglequest/AbstractBuggle.java:343
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:128
 msgid "There is no baggle to pick up here."
 msgstr ""
 
@@ -1266,43 +1364,43 @@ msgstr ""
 msgid "Your are already carrying a baggle."
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:424
+#: src/plm/universe/bugglequest/AbstractBuggle.java:425
 msgid "Its value is 'null', which is never good."
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:431
+#: src/plm/universe/bugglequest/AbstractBuggle.java:432
 #, java-format
 msgid "    Its position is ({0},{1}); expected: ({2},{3}).\n"
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:433
+#: src/plm/universe/bugglequest/AbstractBuggle.java:434
 #, java-format
 msgid "    Its direction is {0}; expected: {1}.\n"
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:435
+#: src/plm/universe/bugglequest/AbstractBuggle.java:436
 #, java-format
 msgid "    Its color is {0}; expected: {1}.\n"
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:437
+#: src/plm/universe/bugglequest/AbstractBuggle.java:438
 #, java-format
 msgid "    The color of its brush is {0}; expected: {1}.\n"
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:439
+#: src/plm/universe/bugglequest/AbstractBuggle.java:440
 msgid "    It should not carry that baggle.\n"
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:441
+#: src/plm/universe/bugglequest/AbstractBuggle.java:442
 msgid "    It is not carrying any baggle.\n"
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:443
+#: src/plm/universe/bugglequest/AbstractBuggle.java:444
 msgid "    It encountered an issue, such as bumping into a wall.\n"
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:445
+#: src/plm/universe/bugglequest/AbstractBuggle.java:446
 msgid "    It didn't encounter any issue, such as bumping into a wall.\n"
 msgstr ""
 
@@ -1391,67 +1489,61 @@ msgid ""
 "Parse error. I was expecting a cell or a buggle description but got: {0}"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorld.java:543
+#: src/plm/universe/bugglequest/BuggleWorld.java:542
 #, java-format
 msgid "  The world''s name is {0}"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorld.java:547
+#: src/plm/universe/bugglequest/BuggleWorld.java:546
 #, java-format
 msgid "  In ({0},{1})"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorld.java:550
+#: src/plm/universe/bugglequest/BuggleWorld.java:549
 #, java-format
 msgid "  Something is wrong about buggle ''{0}'':\n"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:129
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:136
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:143
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:121
 msgid "There is already a baggle here."
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:231
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:202
 msgid ", there shouldn't be this baggle"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:233
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:204
 msgid ", there should be a baggle"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:235
-msgid ", the baggle differs"
-msgstr ""
-
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:238
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:207
 #, java-format
 msgid ", the ground should not be {0}"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:240
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:209
 #, java-format
 msgid ", the ground is expected to be {0}, but it is {1}"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:242
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:211
 #, java-format
 msgid ", the ground reads ''{0}'' (expected: ''{1}'')"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:245
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:214
 msgid ", there shouldn't be any wall at west"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:247
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:216
 msgid ", there should be a wall at west"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:250
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:219
 msgid ", there shouldn't be any wall at north"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:252
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:221
 msgid ", there should be a wall at north"
 msgstr ""
 
@@ -1459,94 +1551,6 @@ msgstr ""
 msgid "Buggles cannot traverse walls"
 msgstr ""
 
-#: src/plm/universe/bugglequest/mapeditor/MainFrame.java:176
-msgid "Create New Map"
-msgstr ""
-
-#: src/plm/universe/bugglequest/mapeditor/MainFrame.java:228
-msgid "Open Map..."
-msgstr ""
-
-#: src/plm/universe/bugglequest/mapeditor/MainFrame.java:234
-#, fuzzy
-msgid "PLM map files"
-msgstr "PLM lesson files"
-
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:58
-msgid "Property"
-msgstr ""
-
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:58
-msgid "Value"
-msgstr ""
-
-#. The editor for the name
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:72
-#, fuzzy
-msgid "World name"
-msgstr "World"
-
-#. ---------- world width ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:84
-#, fuzzy
-msgid "World width"
-msgstr "World"
-
-#. ---------- world height ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:104
-msgid "World height"
-msgstr ""
-
-#. ---------- selected cell ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:124
-msgid "Selected cell X"
-msgstr ""
-
-#. ---------- selected cell ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:146
-msgid "Selected cell Y"
-msgstr ""
-
-#. ---------- Ground color ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:167
-msgid "Ground color (name or r/g/b)"
-msgstr ""
-
-#. ---------- top wall cell ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:184
-msgid "Top wall?"
-msgstr ""
-
-#. ---------- left wall cell ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:206
-msgid "Left wall?"
-msgstr ""
-
-#. ---------- have baggle ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:228
-msgid "Baggle?"
-msgstr ""
-
-#. ---------- Buggle name ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:259
-msgid "Buggle name"
-msgstr ""
-
-#. ---------- Buggle direction ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:270
-msgid "Buggle direction (N|S|E|W)"
-msgstr ""
-
-#. ---------- Buggle color ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:299
-msgid "Buggle color (name or r/g/b)"
-msgstr ""
-
-#. ---------- Buggle color ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:315
-msgid "Brush color (name or r/g/b)"
-msgstr ""
-
 #: src/plm/universe/bugglequest/ui/BuggleButtonPanel.java:55
 #: src/plm/universe/bugglequest/ui/BuggleButtonPanel.java:232
 msgid "forward"
@@ -1592,6 +1596,12 @@ msgstr ""
 msgid "go"
 msgstr "go"
 
+#~ msgid "Current world"
+#~ msgstr "Current world"
+
+#~ msgid "Target world"
+#~ msgstr "Target world"
+
 #~ msgid "Do you really want to quit ?"
 #~ msgstr "Do you really want to quit ?"
 
diff --git a/lib/l10n-engine/fr.po b/lib/l10n-engine/fr.po
index 67ea007..f1da761 100644
--- a/lib/l10n-engine/fr.po
+++ b/lib/l10n-engine/fr.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PLM\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-30 14:51+0200\n"
-"PO-Revision-Date: 2013-08-30 14:54+0200\n"
+"POT-Creation-Date: 2013-09-08 22:40+0200\n"
+"PO-Revision-Date: 2013-09-08 22:42+0200\n"
 "Last-Translator: Martin Quinson <martin.quinson at loria.fr> and Frank STENGEL "
 "<fstengel at mac.com>\n"
 "Language-Team: not really\n"
@@ -586,22 +586,22 @@ msgstr ""
 msgid "Python is missing"
 msgstr "Python est manquant"
 
-#: src/plm/core/model/Game.java:1058
+#: src/plm/core/model/Game.java:1066
 #, java-format
 msgid "{0} is not writable"
 msgstr "{0} n'est pas accessible en écriture."
 
-#: src/plm/core/model/Game.java:1062
+#: src/plm/core/model/Game.java:1070
 #, java-format
 msgid "{0} is not a directory"
 msgstr "{0} n'est pas un répertoire."
 
-#: src/plm/core/model/Game.java:1069
+#: src/plm/core/model/Game.java:1077
 #, java-format
 msgid "Cannot create {0}"
 msgstr "Impossible de créer {0}"
 
-#: src/plm/core/model/Game.java:1075
+#: src/plm/core/model/Game.java:1083
 #, java-format
 msgid "Impossible to find a path for PLM data. Tested {0}"
 msgstr ""
@@ -616,7 +616,7 @@ msgstr "Demander de l'aide à l'enseignant"
 msgid "Cancel call for help to the teacher"
 msgstr "Annuler la demande d'aide"
 
-#: src/plm/core/model/LessonRunner.java:91
+#: src/plm/core/model/LessonRunner.java:94
 #, java-format
 msgid ""
 "Congratulations, you passed this exercise.\n"
@@ -625,18 +625,18 @@ msgstr ""
 "Félicitation, vous avez réussi cet exercice.\n"
 "{0} tests passés."
 
-#: src/plm/core/model/LessonRunner.java:93
-#: src/plm/core/model/LessonRunner.java:99
-#: src/plm/core/model/LessonRunner.java:108
-#: src/plm/core/model/LessonRunner.java:114
+#: src/plm/core/model/LessonRunner.java:96
+#: src/plm/core/model/LessonRunner.java:102
+#: src/plm/core/model/LessonRunner.java:111
+#: src/plm/core/model/LessonRunner.java:117
 msgid "Exercice passed \\o/"
 msgstr "Exercice réussi \\o/"
 
-#: src/plm/core/model/LessonRunner.java:97
+#: src/plm/core/model/LessonRunner.java:100
 msgid "Congratulations, you passed this exercise."
 msgstr "Félicitation, vous avez réussi cet exercice."
 
-#: src/plm/core/model/LessonRunner.java:107
+#: src/plm/core/model/LessonRunner.java:110
 #, java-format
 msgid ""
 "Congratulations, you passed this exercise.\n"
@@ -647,7 +647,7 @@ msgstr ""
 "({0} tests passés)\n"
 "Par quel exercice voulez vous continuer ?"
 
-#: src/plm/core/model/LessonRunner.java:113
+#: src/plm/core/model/LessonRunner.java:116
 msgid ""
 "Congratulations, you passed this exercise.\n"
 "Which exercise will you do now?"
@@ -959,31 +959,35 @@ msgstr "Vous n'avez pas atteint votre objectif"
 msgid "Compilation error"
 msgstr "Erreur de compilation"
 
-#: src/plm/core/ui/ExerciseView.java:74
-msgid "Switch the displayed world"
-msgstr "Changer le monde affiché"
-
-#: src/plm/core/ui/ExerciseView.java:84
-msgid "Change the speed of execution"
-msgstr "Changer la vitesse d'exécution"
-
-#: src/plm/core/ui/ExerciseView.java:91 src/plm/core/ui/ExerciseView.java:163
+#: src/plm/core/ui/ExerciseView.java:92 src/plm/core/ui/ExerciseView.java:161
+#: src/plm/core/ui/ExerciseView.java:218
 msgid "World"
 msgstr "Monde"
 
-#: src/plm/core/ui/ExerciseView.java:92 src/plm/core/ui/ExerciseView.java:164
-msgid "Current world"
-msgstr "Monde courant"
+#: src/plm/core/ui/ExerciseView.java:92 src/plm/core/ui/ExerciseView.java:161
+#: src/plm/core/ui/ExerciseView.java:219
+msgid "The world as it is right now"
+msgstr "Le monde tel qu'il est"
 
-#: src/plm/core/ui/ExerciseView.java:96 src/plm/core/ui/ExerciseView.java:166
+#: src/plm/core/ui/ExerciseView.java:96 src/plm/core/ui/ExerciseView.java:163
+#: src/plm/core/ui/ExerciseView.java:220
 msgid "Objective"
 msgstr "Objectif"
 
-#: src/plm/core/ui/ExerciseView.java:97 src/plm/core/ui/ExerciseView.java:167
-msgid "Target world"
-msgstr "Monde attendu après exécution du code"
+#: src/plm/core/ui/ExerciseView.java:96 src/plm/core/ui/ExerciseView.java:163
+#: src/plm/core/ui/ExerciseView.java:221
+msgid "The world as it should be"
+msgstr "Le monde tel qu'il devrait être"
 
-#: src/plm/core/ui/ExerciseView.java:105
+#: src/plm/core/ui/ExerciseView.java:215
+msgid "Switch the displayed world"
+msgstr "Changer le monde affiché"
+
+#: src/plm/core/ui/ExerciseView.java:216
+msgid "Change the speed of execution"
+msgstr "Changer la vitesse d'exécution"
+
+#: src/plm/core/ui/ExerciseView.java:217
 msgid "Switch the entity"
 msgstr "Changer d'entité"
 
@@ -1063,7 +1067,7 @@ msgstr "Endroit ou les erreurs et autres messages sont écrits"
 #. === FILE menu ===
 #. for now: leave the calls to i18n.tr: that way one is sure to get all the localized strings...
 #. Menus
-#: src/plm/core/ui/MainFrame.java:152 src/plm/core/ui/MainFrame.java:647
+#: src/plm/core/ui/MainFrame.java:152 src/plm/core/ui/MainFrame.java:658
 msgid "File"
 msgstr "Fichier"
 
@@ -1071,120 +1075,124 @@ msgstr "Fichier"
 msgid "File related functions"
 msgstr "Fonction relatives à la gestion de fichiers"
 
-#: src/plm/core/ui/MainFrame.java:157 src/plm/core/ui/MainFrame.java:648
+#: src/plm/core/ui/MainFrame.java:157 src/plm/core/ui/MainFrame.java:659
 msgid "Load lesson"
 msgstr "Charger Leçon"
 
-#: src/plm/core/ui/MainFrame.java:179 src/plm/core/ui/MainFrame.java:649
+#: src/plm/core/ui/MainFrame.java:179 src/plm/core/ui/MainFrame.java:660
 msgid "Switch lesson"
 msgstr "Sélectionner une leçon"
 
-#: src/plm/core/ui/MainFrame.java:191 src/plm/core/ui/MainFrame.java:416
-#: src/plm/core/ui/MainFrame.java:644 src/plm/core/ui/MainFrame.java:650
+#: src/plm/core/ui/MainFrame.java:191 src/plm/core/ui/MainFrame.java:427
+#: src/plm/core/ui/MainFrame.java:655 src/plm/core/ui/MainFrame.java:661
 msgid "Switch exercise"
 msgstr "Changer d'exercice"
 
-#: src/plm/core/ui/MainFrame.java:204 src/plm/core/ui/MainFrame.java:652
+#: src/plm/core/ui/MainFrame.java:204 src/plm/core/ui/MainFrame.java:663
 msgid "Teacher Console"
 msgstr "Console enseignant"
 
 #. Menu item to change the current Course
-#: src/plm/core/ui/MainFrame.java:223 src/plm/core/ui/MainFrame.java:653
+#: src/plm/core/ui/MainFrame.java:223 src/plm/core/ui/MainFrame.java:664
 msgid "Choose your course"
 msgstr "Sélectionner un cours"
 
-#: src/plm/core/ui/MainFrame.java:242 src/plm/core/ui/MainFrame.java:654
+#: src/plm/core/ui/MainFrame.java:242 src/plm/core/ui/MainFrame.java:665
 msgid "Quit"
 msgstr "Quitter"
 
 #. === Edit menu ===
-#: src/plm/core/ui/MainFrame.java:250 src/plm/core/ui/MainFrame.java:656
+#: src/plm/core/ui/MainFrame.java:250 src/plm/core/ui/MainFrame.java:667
 msgid "Session"
 msgstr "Session"
 
-#: src/plm/core/ui/MainFrame.java:255 src/plm/core/ui/MainFrame.java:658
+#: src/plm/core/ui/MainFrame.java:255 src/plm/core/ui/MainFrame.java:669
 msgid "Revert Exercise"
 msgstr "Recommencer l'exercice"
 
-#: src/plm/core/ui/MainFrame.java:258 src/plm/core/ui/MainFrame.java:659
+#: src/plm/core/ui/MainFrame.java:258 src/plm/core/ui/MainFrame.java:670
 msgid "Export Session Cache"
 msgstr "Exporter le cache de session"
 
-#: src/plm/core/ui/MainFrame.java:261 src/plm/core/ui/MainFrame.java:660
+#: src/plm/core/ui/MainFrame.java:261 src/plm/core/ui/MainFrame.java:671
 msgid "Import Session Cache"
 msgstr "Importer le cache de session"
 
-#: src/plm/core/ui/MainFrame.java:265 src/plm/core/ui/MainFrame.java:661
+#: src/plm/core/ui/MainFrame.java:265 src/plm/core/ui/MainFrame.java:672
 msgid "Debug mode"
 msgstr "Mode débogage"
 
+#: src/plm/core/ui/MainFrame.java:276 src/plm/core/ui/MainFrame.java:673
+msgid "Creative mode"
+msgstr "Mode créatif"
+
 #. === Language menu ===
-#: src/plm/core/ui/MainFrame.java:278 src/plm/core/ui/MainFrame.java:664
+#: src/plm/core/ui/MainFrame.java:289 src/plm/core/ui/MainFrame.java:676
 msgid "Language"
 msgstr "Langage"
 
 #. === Programming language changing ===
-#: src/plm/core/ui/MainFrame.java:283 src/plm/core/ui/MainFrame.java:665
+#: src/plm/core/ui/MainFrame.java:294 src/plm/core/ui/MainFrame.java:677
 msgid "Human"
 msgstr "Humain"
 
-#: src/plm/core/ui/MainFrame.java:297 src/plm/core/ui/MainFrame.java:666
+#: src/plm/core/ui/MainFrame.java:308 src/plm/core/ui/MainFrame.java:678
 msgid "Computer"
 msgstr "Ordinateur"
 
 #. === Help menu ===
-#: src/plm/core/ui/MainFrame.java:301 src/plm/core/ui/MainFrame.java:668
+#: src/plm/core/ui/MainFrame.java:312 src/plm/core/ui/MainFrame.java:680
 msgid "Help"
 msgstr "Aide"
 
-#: src/plm/core/ui/MainFrame.java:305 src/plm/core/ui/MainFrame.java:669
+#: src/plm/core/ui/MainFrame.java:316 src/plm/core/ui/MainFrame.java:681
 msgid "Provide feedback"
 msgstr "Faire un retour"
 
-#: src/plm/core/ui/MainFrame.java:315 src/plm/core/ui/MainFrame.java:670
+#: src/plm/core/ui/MainFrame.java:326 src/plm/core/ui/MainFrame.java:682
 msgid "About this lesson"
 msgstr "À propos de cette leçon"
 
-#: src/plm/core/ui/MainFrame.java:328 src/plm/core/ui/MainFrame.java:671
+#: src/plm/core/ui/MainFrame.java:339 src/plm/core/ui/MainFrame.java:683
 msgid "About this world"
 msgstr "À propos de ce monde"
 
-#: src/plm/core/ui/MainFrame.java:344 src/plm/core/ui/MainFrame.java:673
+#: src/plm/core/ui/MainFrame.java:355 src/plm/core/ui/MainFrame.java:685
 msgid "About PLM"
 msgstr "À propos de PLM"
 
 #. Buttons
-#: src/plm/core/ui/MainFrame.java:377 src/plm/core/ui/MainFrame.java:638
+#: src/plm/core/ui/MainFrame.java:388 src/plm/core/ui/MainFrame.java:649
 msgid "Run"
 msgstr "Exécuter"
 
-#: src/plm/core/ui/MainFrame.java:381 src/plm/core/ui/MainFrame.java:479
-#: src/plm/core/ui/MainFrame.java:639
+#: src/plm/core/ui/MainFrame.java:392 src/plm/core/ui/MainFrame.java:490
+#: src/plm/core/ui/MainFrame.java:650
 msgid "Step"
 msgstr "Un pas"
 
-#: src/plm/core/ui/MainFrame.java:386 src/plm/core/ui/MainFrame.java:640
+#: src/plm/core/ui/MainFrame.java:397 src/plm/core/ui/MainFrame.java:651
 msgid "Stop"
 msgstr "Stop"
 
-#: src/plm/core/ui/MainFrame.java:392 src/plm/core/ui/MainFrame.java:641
+#: src/plm/core/ui/MainFrame.java:403 src/plm/core/ui/MainFrame.java:652
 msgid "Reset"
 msgstr "Réinitialiser"
 
-#: src/plm/core/ui/MainFrame.java:398 src/plm/core/ui/MainFrame.java:642
+#: src/plm/core/ui/MainFrame.java:409 src/plm/core/ui/MainFrame.java:653
 msgid "Demo"
 msgstr "Démo"
 
-#: src/plm/core/ui/MainFrame.java:404 src/plm/core/ui/MainFrame.java:643
+#: src/plm/core/ui/MainFrame.java:415 src/plm/core/ui/MainFrame.java:654
 #: src/plm/core/ui/action/HelpMe.java:37
 msgid "Call for Help"
 msgstr "Appeler à l'aide"
 
-#: src/plm/core/ui/MainFrame.java:464
+#: src/plm/core/ui/MainFrame.java:475
 msgid "Next"
 msgstr "Suivant"
 
-#: src/plm/core/ui/MainFrame.java:657
+#: src/plm/core/ui/MainFrame.java:668
 msgid "Lesson related functions"
 msgstr "Fonctions relatives aux leçons"
 
@@ -1298,7 +1306,7 @@ msgid "PLM - Mission Editor"
 msgstr "PLM - Éditeur de missions"
 
 #: src/plm/core/ui/editor/MissionEditor.java:173
-#: src/plm/universe/bugglequest/mapeditor/MainFrame.java:242
+#: src/plm/core/ui/editor/buggleeditor/MainFrame.java:242
 #, java-format
 msgid "Error while reading {0}"
 msgstr "Erreur lors de la lecture de {0}"
@@ -1356,6 +1364,91 @@ msgstr "C'est une mission traduite"
 msgid "Quit Map Editor"
 msgstr "Quitter l'éditeur de carte"
 
+#: src/plm/core/ui/editor/buggleeditor/MainFrame.java:176
+msgid "Create New Map"
+msgstr "Créer une nouvelle carte"
+
+#: src/plm/core/ui/editor/buggleeditor/MainFrame.java:228
+msgid "Open Map..."
+msgstr "Ouvrir la carte..."
+
+#: src/plm/core/ui/editor/buggleeditor/MainFrame.java:234
+msgid "PLM map files"
+msgstr "Fichiers de cartes pour la PLM"
+
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:57
+msgid "Property"
+msgstr "Propriété"
+
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:57
+msgid "Value"
+msgstr "Valeur"
+
+#. The editor for the name
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:71
+msgid "World name"
+msgstr "Nom du monde"
+
+#. ---------- world width ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:83
+msgid "World width"
+msgstr "Largeur du monde"
+
+#. ---------- world height ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:103
+msgid "World height"
+msgstr "Hauteur du monde"
+
+#. ---------- selected cell ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:123
+msgid "Selected cell X"
+msgstr "Cellule sélectionnée X"
+
+#. ---------- selected cell ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:145
+msgid "Selected cell Y"
+msgstr "Cellule sélectionnée Y"
+
+#. ---------- Ground color ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:166
+msgid "Ground color (name or r/g/b)"
+msgstr "Couleur du sol (nom ou r/g/b)"
+
+#. ---------- top wall cell ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:183
+msgid "Top wall?"
+msgstr "Mur en haut ?"
+
+#. ---------- left wall cell ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:205
+msgid "Left wall?"
+msgstr "Mur à gauche ?"
+
+#. ---------- have baggle ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:227
+msgid "Baggle?"
+msgstr "Biscuit ?"
+
+#. ---------- Buggle name ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:258
+msgid "Buggle name"
+msgstr "Nom de la buggle"
+
+#. ---------- Buggle direction ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:269
+msgid "Buggle direction (N|S|E|W)"
+msgstr "Direction de la buggle (N|S|E|W)"
+
+#. ---------- Buggle color ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:298
+msgid "Buggle color (name or r/g/b)"
+msgstr "Couleur de la buggle (nom ou r/g/b)"
+
+#. ---------- Buggle color ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:314
+msgid "Brush color (name or r/g/b)"
+msgstr "Couleur du pinceau (nom ou r/g/b -- rouge/vert/bleu)"
+
 #: src/plm/universe/Entity.java:176
 #, java-format
 msgid ""
@@ -1440,6 +1533,7 @@ msgstr ""
 "monde est {1}."
 
 #: src/plm/universe/bugglequest/AbstractBuggle.java:343
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:128
 msgid "There is no baggle to pick up here."
 msgstr "Erreur : Il n'y a pas de biscuit à ramasser ici."
 
@@ -1447,43 +1541,43 @@ msgstr "Erreur : Il n'y a pas de biscuit à ramasser ici."
 msgid "Your are already carrying a baggle."
 msgstr "Vous portez déjà un biscuit."
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:424
+#: src/plm/universe/bugglequest/AbstractBuggle.java:425
 msgid "Its value is 'null', which is never good."
 msgstr "Sa valeur est 'null', ce qui n'est jamais bon."
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:431
+#: src/plm/universe/bugglequest/AbstractBuggle.java:432
 #, java-format
 msgid "    Its position is ({0},{1}); expected: ({2},{3}).\n"
 msgstr "    Sa position est ({0},{1}) ; attendue : ({2},{3}).\n"
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:433
+#: src/plm/universe/bugglequest/AbstractBuggle.java:434
 #, java-format
 msgid "    Its direction is {0}; expected: {1}.\n"
 msgstr "    Sa direction est {0} ; attendue : {1}.\n"
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:435
+#: src/plm/universe/bugglequest/AbstractBuggle.java:436
 #, java-format
 msgid "    Its color is {0}; expected: {1}.\n"
 msgstr "    Sa couleur est {0} ; attendue : {1}.\n"
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:437
+#: src/plm/universe/bugglequest/AbstractBuggle.java:438
 #, java-format
 msgid "    The color of its brush is {0}; expected: {1}.\n"
 msgstr "    La couleur de son pinceau est {0} ; attendue : {1}\n"
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:439
+#: src/plm/universe/bugglequest/AbstractBuggle.java:440
 msgid "    It should not carry that baggle.\n"
 msgstr "    Elle de devrait pas porter de biscuit.\n"
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:441
+#: src/plm/universe/bugglequest/AbstractBuggle.java:442
 msgid "    It is not carrying any baggle.\n"
 msgstr "    Elle ne porte pas de biscuit.\n"
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:443
+#: src/plm/universe/bugglequest/AbstractBuggle.java:444
 msgid "    It encountered an issue, such as bumping into a wall.\n"
 msgstr "    Elle a eu un problème tel que rencontrer un mur.\n"
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:445
+#: src/plm/universe/bugglequest/AbstractBuggle.java:446
 msgid "    It didn't encounter any issue, such as bumping into a wall.\n"
 msgstr "    Elle n'a pas eu de problème tel que rencontrer un mur.\n"
 
@@ -1591,67 +1685,61 @@ msgstr ""
 "Erreur de syntaxe. J''attendais la description d''une cellule ou d''un "
 "buggle mais j''ai eu : {0}"
 
-#: src/plm/universe/bugglequest/BuggleWorld.java:543
+#: src/plm/universe/bugglequest/BuggleWorld.java:542
 #, java-format
 msgid "  The world''s name is {0}"
 msgstr "  Le nom du monde est {0}"
 
-#: src/plm/universe/bugglequest/BuggleWorld.java:547
+#: src/plm/universe/bugglequest/BuggleWorld.java:546
 #, java-format
 msgid "  In ({0},{1})"
 msgstr "  En ({0},{1})"
 
-#: src/plm/universe/bugglequest/BuggleWorld.java:550
+#: src/plm/universe/bugglequest/BuggleWorld.java:549
 #, java-format
 msgid "  Something is wrong about buggle ''{0}'':\n"
 msgstr "  Il y a quelque chose qui cloche avec la buggle «{0}»:\n"
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:129
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:136
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:143
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:121
 msgid "There is already a baggle here."
 msgstr "Il y a déjà un biscuit ici."
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:231
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:202
 msgid ", there shouldn't be this baggle"
 msgstr ", il ne devrait pas y avoir ce biscuit"
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:233
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:204
 msgid ", there should be a baggle"
 msgstr ", il devrait y avoir un biscuit"
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:235
-msgid ", the baggle differs"
-msgstr ", le biscuit est différent"
-
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:238
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:207
 #, java-format
 msgid ", the ground should not be {0}"
 msgstr ", le sol ne devrait pas être {0}"
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:240
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:209
 #, java-format
 msgid ", the ground is expected to be {0}, but it is {1}"
 msgstr ", le sol devrait être {0}, mais est {1}"
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:242
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:211
 #, java-format
 msgid ", the ground reads ''{0}'' (expected: ''{1}'')"
 msgstr ", on lit «{0}» sur le sol (on attendait : «{1}»)"
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:245
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:214
 msgid ", there shouldn't be any wall at west"
 msgstr ", il ne devrait pas y avoir de mur à l'ouest"
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:247
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:216
 msgid ", there should be a wall at west"
 msgstr ", il devrait y avoir un mur à l'ouest"
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:250
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:219
 msgid ", there shouldn't be any wall at north"
 msgstr ", il ne devrait pas y avoir de mur au nord"
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:252
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:221
 msgid ", there should be a wall at north"
 msgstr ", il devrait y avoir un mur au nord"
 
@@ -1659,91 +1747,6 @@ msgstr ", il devrait y avoir un mur au nord"
 msgid "Buggles cannot traverse walls"
 msgstr "Les buggles ne peuvent pas traverser les murs"
 
-#: src/plm/universe/bugglequest/mapeditor/MainFrame.java:176
-msgid "Create New Map"
-msgstr "Créer une nouvelle carte"
-
-#: src/plm/universe/bugglequest/mapeditor/MainFrame.java:228
-msgid "Open Map..."
-msgstr "Ouvrir la carte..."
-
-#: src/plm/universe/bugglequest/mapeditor/MainFrame.java:234
-msgid "PLM map files"
-msgstr "Fichiers de cartes pour la PLM"
-
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:58
-msgid "Property"
-msgstr "Propriété"
-
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:58
-msgid "Value"
-msgstr "Valeur"
-
-#. The editor for the name
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:72
-msgid "World name"
-msgstr "Nom du monde"
-
-#. ---------- world width ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:84
-msgid "World width"
-msgstr "Largeur du monde"
-
-#. ---------- world height ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:104
-msgid "World height"
-msgstr "Hauteur du monde"
-
-#. ---------- selected cell ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:124
-msgid "Selected cell X"
-msgstr "Cellule sélectionnée X"
-
-#. ---------- selected cell ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:146
-msgid "Selected cell Y"
-msgstr "Cellule sélectionnée Y"
-
-#. ---------- Ground color ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:167
-msgid "Ground color (name or r/g/b)"
-msgstr "Couleur du sol (nom ou r/g/b)"
-
-#. ---------- top wall cell ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:184
-msgid "Top wall?"
-msgstr "Mur en haut ?"
-
-#. ---------- left wall cell ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:206
-msgid "Left wall?"
-msgstr "Mur à gauche ?"
-
-#. ---------- have baggle ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:228
-msgid "Baggle?"
-msgstr "Biscuit ?"
-
-#. ---------- Buggle name ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:259
-msgid "Buggle name"
-msgstr "Nom de la buggle"
-
-#. ---------- Buggle direction ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:270
-msgid "Buggle direction (N|S|E|W)"
-msgstr "Direction de la buggle (N|S|E|W)"
-
-#. ---------- Buggle color ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:299
-msgid "Buggle color (name or r/g/b)"
-msgstr "Couleur de la buggle (nom ou r/g/b)"
-
-#. ---------- Buggle color ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:315
-msgid "Brush color (name or r/g/b)"
-msgstr "Couleur du pinceau (nom ou r/g/b -- rouge/vert/bleu)"
-
 #: src/plm/universe/bugglequest/ui/BuggleButtonPanel.java:55
 #: src/plm/universe/bugglequest/ui/BuggleButtonPanel.java:232
 msgid "forward"
@@ -1788,3 +1791,9 @@ msgstr "Couleur de la buggle"
 #: src/plm/universe/sort/SortingButtonPanel.java:63
 msgid "go"
 msgstr "aller"
+
+#~ msgid "Current world"
+#~ msgstr "Monde courant"
+
+#~ msgid "Target world"
+#~ msgstr "Monde attendu après exécution du code"
diff --git a/lib/l10n-engine/plm.pot b/lib/l10n-engine/plm.pot
index f287c50..ecde5f0 100644
--- a/lib/l10n-engine/plm.pot
+++ b/lib/l10n-engine/plm.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-30 14:51+0200\n"
+"POT-Creation-Date: 2013-09-08 22:40+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -494,22 +494,22 @@ msgstr ""
 msgid "Python is missing"
 msgstr ""
 
-#: src/plm/core/model/Game.java:1058
+#: src/plm/core/model/Game.java:1066
 #, java-format
 msgid "{0} is not writable"
 msgstr ""
 
-#: src/plm/core/model/Game.java:1062
+#: src/plm/core/model/Game.java:1070
 #, java-format
 msgid "{0} is not a directory"
 msgstr ""
 
-#: src/plm/core/model/Game.java:1069
+#: src/plm/core/model/Game.java:1077
 #, java-format
 msgid "Cannot create {0}"
 msgstr ""
 
-#: src/plm/core/model/Game.java:1075
+#: src/plm/core/model/Game.java:1083
 #, java-format
 msgid "Impossible to find a path for PLM data. Tested {0}"
 msgstr ""
@@ -522,25 +522,25 @@ msgstr ""
 msgid "Cancel call for help to the teacher"
 msgstr ""
 
-#: src/plm/core/model/LessonRunner.java:91
+#: src/plm/core/model/LessonRunner.java:94
 #, java-format
 msgid ""
 "Congratulations, you passed this exercise.\n"
 "{0} tests passed."
 msgstr ""
 
-#: src/plm/core/model/LessonRunner.java:93
-#: src/plm/core/model/LessonRunner.java:99
-#: src/plm/core/model/LessonRunner.java:108
-#: src/plm/core/model/LessonRunner.java:114
+#: src/plm/core/model/LessonRunner.java:96
+#: src/plm/core/model/LessonRunner.java:102
+#: src/plm/core/model/LessonRunner.java:111
+#: src/plm/core/model/LessonRunner.java:117
 msgid "Exercice passed \\o/"
 msgstr ""
 
-#: src/plm/core/model/LessonRunner.java:97
+#: src/plm/core/model/LessonRunner.java:100
 msgid "Congratulations, you passed this exercise."
 msgstr ""
 
-#: src/plm/core/model/LessonRunner.java:107
+#: src/plm/core/model/LessonRunner.java:110
 #, java-format
 msgid ""
 "Congratulations, you passed this exercise.\n"
@@ -548,7 +548,7 @@ msgid ""
 "Which exercise will you do now?"
 msgstr ""
 
-#: src/plm/core/model/LessonRunner.java:113
+#: src/plm/core/model/LessonRunner.java:116
 msgid ""
 "Congratulations, you passed this exercise.\n"
 "Which exercise will you do now?"
@@ -811,31 +811,35 @@ msgstr ""
 msgid "Compilation error"
 msgstr ""
 
-#: src/plm/core/ui/ExerciseView.java:74
-msgid "Switch the displayed world"
+#: src/plm/core/ui/ExerciseView.java:92 src/plm/core/ui/ExerciseView.java:161
+#: src/plm/core/ui/ExerciseView.java:218
+msgid "World"
 msgstr ""
 
-#: src/plm/core/ui/ExerciseView.java:84
-msgid "Change the speed of execution"
+#: src/plm/core/ui/ExerciseView.java:92 src/plm/core/ui/ExerciseView.java:161
+#: src/plm/core/ui/ExerciseView.java:219
+msgid "The world as it is right now"
 msgstr ""
 
-#: src/plm/core/ui/ExerciseView.java:91 src/plm/core/ui/ExerciseView.java:163
-msgid "World"
+#: src/plm/core/ui/ExerciseView.java:96 src/plm/core/ui/ExerciseView.java:163
+#: src/plm/core/ui/ExerciseView.java:220
+msgid "Objective"
 msgstr ""
 
-#: src/plm/core/ui/ExerciseView.java:92 src/plm/core/ui/ExerciseView.java:164
-msgid "Current world"
+#: src/plm/core/ui/ExerciseView.java:96 src/plm/core/ui/ExerciseView.java:163
+#: src/plm/core/ui/ExerciseView.java:221
+msgid "The world as it should be"
 msgstr ""
 
-#: src/plm/core/ui/ExerciseView.java:96 src/plm/core/ui/ExerciseView.java:166
-msgid "Objective"
+#: src/plm/core/ui/ExerciseView.java:215
+msgid "Switch the displayed world"
 msgstr ""
 
-#: src/plm/core/ui/ExerciseView.java:97 src/plm/core/ui/ExerciseView.java:167
-msgid "Target world"
+#: src/plm/core/ui/ExerciseView.java:216
+msgid "Change the speed of execution"
 msgstr ""
 
-#: src/plm/core/ui/ExerciseView.java:105
+#: src/plm/core/ui/ExerciseView.java:217
 msgid "Switch the entity"
 msgstr ""
 
@@ -897,7 +901,7 @@ msgstr ""
 #. === FILE menu ===
 #. for now: leave the calls to i18n.tr: that way one is sure to get all the localized strings...
 #. Menus
-#: src/plm/core/ui/MainFrame.java:152 src/plm/core/ui/MainFrame.java:647
+#: src/plm/core/ui/MainFrame.java:152 src/plm/core/ui/MainFrame.java:658
 msgid "File"
 msgstr ""
 
@@ -905,120 +909,124 @@ msgstr ""
 msgid "File related functions"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:157 src/plm/core/ui/MainFrame.java:648
+#: src/plm/core/ui/MainFrame.java:157 src/plm/core/ui/MainFrame.java:659
 msgid "Load lesson"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:179 src/plm/core/ui/MainFrame.java:649
+#: src/plm/core/ui/MainFrame.java:179 src/plm/core/ui/MainFrame.java:660
 msgid "Switch lesson"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:191 src/plm/core/ui/MainFrame.java:416
-#: src/plm/core/ui/MainFrame.java:644 src/plm/core/ui/MainFrame.java:650
+#: src/plm/core/ui/MainFrame.java:191 src/plm/core/ui/MainFrame.java:427
+#: src/plm/core/ui/MainFrame.java:655 src/plm/core/ui/MainFrame.java:661
 msgid "Switch exercise"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:204 src/plm/core/ui/MainFrame.java:652
+#: src/plm/core/ui/MainFrame.java:204 src/plm/core/ui/MainFrame.java:663
 msgid "Teacher Console"
 msgstr ""
 
 #. Menu item to change the current Course
-#: src/plm/core/ui/MainFrame.java:223 src/plm/core/ui/MainFrame.java:653
+#: src/plm/core/ui/MainFrame.java:223 src/plm/core/ui/MainFrame.java:664
 msgid "Choose your course"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:242 src/plm/core/ui/MainFrame.java:654
+#: src/plm/core/ui/MainFrame.java:242 src/plm/core/ui/MainFrame.java:665
 msgid "Quit"
 msgstr ""
 
 #. === Edit menu ===
-#: src/plm/core/ui/MainFrame.java:250 src/plm/core/ui/MainFrame.java:656
+#: src/plm/core/ui/MainFrame.java:250 src/plm/core/ui/MainFrame.java:667
 msgid "Session"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:255 src/plm/core/ui/MainFrame.java:658
+#: src/plm/core/ui/MainFrame.java:255 src/plm/core/ui/MainFrame.java:669
 msgid "Revert Exercise"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:258 src/plm/core/ui/MainFrame.java:659
+#: src/plm/core/ui/MainFrame.java:258 src/plm/core/ui/MainFrame.java:670
 msgid "Export Session Cache"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:261 src/plm/core/ui/MainFrame.java:660
+#: src/plm/core/ui/MainFrame.java:261 src/plm/core/ui/MainFrame.java:671
 msgid "Import Session Cache"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:265 src/plm/core/ui/MainFrame.java:661
+#: src/plm/core/ui/MainFrame.java:265 src/plm/core/ui/MainFrame.java:672
 msgid "Debug mode"
 msgstr ""
 
+#: src/plm/core/ui/MainFrame.java:276 src/plm/core/ui/MainFrame.java:673
+msgid "Creative mode"
+msgstr ""
+
 #. === Language menu ===
-#: src/plm/core/ui/MainFrame.java:278 src/plm/core/ui/MainFrame.java:664
+#: src/plm/core/ui/MainFrame.java:289 src/plm/core/ui/MainFrame.java:676
 msgid "Language"
 msgstr ""
 
 #. === Programming language changing ===
-#: src/plm/core/ui/MainFrame.java:283 src/plm/core/ui/MainFrame.java:665
+#: src/plm/core/ui/MainFrame.java:294 src/plm/core/ui/MainFrame.java:677
 msgid "Human"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:297 src/plm/core/ui/MainFrame.java:666
+#: src/plm/core/ui/MainFrame.java:308 src/plm/core/ui/MainFrame.java:678
 msgid "Computer"
 msgstr ""
 
 #. === Help menu ===
-#: src/plm/core/ui/MainFrame.java:301 src/plm/core/ui/MainFrame.java:668
+#: src/plm/core/ui/MainFrame.java:312 src/plm/core/ui/MainFrame.java:680
 msgid "Help"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:305 src/plm/core/ui/MainFrame.java:669
+#: src/plm/core/ui/MainFrame.java:316 src/plm/core/ui/MainFrame.java:681
 msgid "Provide feedback"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:315 src/plm/core/ui/MainFrame.java:670
+#: src/plm/core/ui/MainFrame.java:326 src/plm/core/ui/MainFrame.java:682
 msgid "About this lesson"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:328 src/plm/core/ui/MainFrame.java:671
+#: src/plm/core/ui/MainFrame.java:339 src/plm/core/ui/MainFrame.java:683
 msgid "About this world"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:344 src/plm/core/ui/MainFrame.java:673
+#: src/plm/core/ui/MainFrame.java:355 src/plm/core/ui/MainFrame.java:685
 msgid "About PLM"
 msgstr ""
 
 #. Buttons
-#: src/plm/core/ui/MainFrame.java:377 src/plm/core/ui/MainFrame.java:638
+#: src/plm/core/ui/MainFrame.java:388 src/plm/core/ui/MainFrame.java:649
 msgid "Run"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:381 src/plm/core/ui/MainFrame.java:479
-#: src/plm/core/ui/MainFrame.java:639
+#: src/plm/core/ui/MainFrame.java:392 src/plm/core/ui/MainFrame.java:490
+#: src/plm/core/ui/MainFrame.java:650
 msgid "Step"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:386 src/plm/core/ui/MainFrame.java:640
+#: src/plm/core/ui/MainFrame.java:397 src/plm/core/ui/MainFrame.java:651
 msgid "Stop"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:392 src/plm/core/ui/MainFrame.java:641
+#: src/plm/core/ui/MainFrame.java:403 src/plm/core/ui/MainFrame.java:652
 msgid "Reset"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:398 src/plm/core/ui/MainFrame.java:642
+#: src/plm/core/ui/MainFrame.java:409 src/plm/core/ui/MainFrame.java:653
 msgid "Demo"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:404 src/plm/core/ui/MainFrame.java:643
+#: src/plm/core/ui/MainFrame.java:415 src/plm/core/ui/MainFrame.java:654
 #: src/plm/core/ui/action/HelpMe.java:37
 msgid "Call for Help"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:464
+#: src/plm/core/ui/MainFrame.java:475
 msgid "Next"
 msgstr ""
 
-#: src/plm/core/ui/MainFrame.java:657
+#: src/plm/core/ui/MainFrame.java:668
 msgid "Lesson related functions"
 msgstr ""
 
@@ -1127,7 +1135,7 @@ msgid "PLM - Mission Editor"
 msgstr ""
 
 #: src/plm/core/ui/editor/MissionEditor.java:173
-#: src/plm/universe/bugglequest/mapeditor/MainFrame.java:242
+#: src/plm/core/ui/editor/buggleeditor/MainFrame.java:242
 #, java-format
 msgid "Error while reading {0}"
 msgstr ""
@@ -1174,6 +1182,91 @@ msgstr ""
 msgid "Quit Map Editor"
 msgstr ""
 
+#: src/plm/core/ui/editor/buggleeditor/MainFrame.java:176
+msgid "Create New Map"
+msgstr ""
+
+#: src/plm/core/ui/editor/buggleeditor/MainFrame.java:228
+msgid "Open Map..."
+msgstr ""
+
+#: src/plm/core/ui/editor/buggleeditor/MainFrame.java:234
+msgid "PLM map files"
+msgstr ""
+
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:57
+msgid "Property"
+msgstr ""
+
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:57
+msgid "Value"
+msgstr ""
+
+#. The editor for the name
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:71
+msgid "World name"
+msgstr ""
+
+#. ---------- world width ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:83
+msgid "World width"
+msgstr ""
+
+#. ---------- world height ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:103
+msgid "World height"
+msgstr ""
+
+#. ---------- selected cell ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:123
+msgid "Selected cell X"
+msgstr ""
+
+#. ---------- selected cell ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:145
+msgid "Selected cell Y"
+msgstr ""
+
+#. ---------- Ground color ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:166
+msgid "Ground color (name or r/g/b)"
+msgstr ""
+
+#. ---------- top wall cell ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:183
+msgid "Top wall?"
+msgstr ""
+
+#. ---------- left wall cell ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:205
+msgid "Left wall?"
+msgstr ""
+
+#. ---------- have baggle ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:227
+msgid "Baggle?"
+msgstr ""
+
+#. ---------- Buggle name ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:258
+msgid "Buggle name"
+msgstr ""
+
+#. ---------- Buggle direction ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:269
+msgid "Buggle direction (N|S|E|W)"
+msgstr ""
+
+#. ---------- Buggle color ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:298
+msgid "Buggle color (name or r/g/b)"
+msgstr ""
+
+#. ---------- Buggle color ---------------
+#: src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java:314
+msgid "Brush color (name or r/g/b)"
+msgstr ""
+
 #: src/plm/universe/Entity.java:176
 #, java-format
 msgid ""
@@ -1240,6 +1333,7 @@ msgid "You tried to set Y to {0}, but the maximal Y in this world is {1}."
 msgstr ""
 
 #: src/plm/universe/bugglequest/AbstractBuggle.java:343
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:128
 msgid "There is no baggle to pick up here."
 msgstr ""
 
@@ -1247,43 +1341,43 @@ msgstr ""
 msgid "Your are already carrying a baggle."
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:424
+#: src/plm/universe/bugglequest/AbstractBuggle.java:425
 msgid "Its value is 'null', which is never good."
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:431
+#: src/plm/universe/bugglequest/AbstractBuggle.java:432
 #, java-format
 msgid "    Its position is ({0},{1}); expected: ({2},{3}).\n"
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:433
+#: src/plm/universe/bugglequest/AbstractBuggle.java:434
 #, java-format
 msgid "    Its direction is {0}; expected: {1}.\n"
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:435
+#: src/plm/universe/bugglequest/AbstractBuggle.java:436
 #, java-format
 msgid "    Its color is {0}; expected: {1}.\n"
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:437
+#: src/plm/universe/bugglequest/AbstractBuggle.java:438
 #, java-format
 msgid "    The color of its brush is {0}; expected: {1}.\n"
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:439
+#: src/plm/universe/bugglequest/AbstractBuggle.java:440
 msgid "    It should not carry that baggle.\n"
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:441
+#: src/plm/universe/bugglequest/AbstractBuggle.java:442
 msgid "    It is not carrying any baggle.\n"
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:443
+#: src/plm/universe/bugglequest/AbstractBuggle.java:444
 msgid "    It encountered an issue, such as bumping into a wall.\n"
 msgstr ""
 
-#: src/plm/universe/bugglequest/AbstractBuggle.java:445
+#: src/plm/universe/bugglequest/AbstractBuggle.java:446
 msgid "    It didn't encounter any issue, such as bumping into a wall.\n"
 msgstr ""
 
@@ -1372,67 +1466,61 @@ msgid ""
 "Parse error. I was expecting a cell or a buggle description but got: {0}"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorld.java:543
+#: src/plm/universe/bugglequest/BuggleWorld.java:542
 #, java-format
 msgid "  The world''s name is {0}"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorld.java:547
+#: src/plm/universe/bugglequest/BuggleWorld.java:546
 #, java-format
 msgid "  In ({0},{1})"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorld.java:550
+#: src/plm/universe/bugglequest/BuggleWorld.java:549
 #, java-format
 msgid "  Something is wrong about buggle ''{0}'':\n"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:129
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:136
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:143
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:121
 msgid "There is already a baggle here."
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:231
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:202
 msgid ", there shouldn't be this baggle"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:233
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:204
 msgid ", there should be a baggle"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:235
-msgid ", the baggle differs"
-msgstr ""
-
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:238
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:207
 #, java-format
 msgid ", the ground should not be {0}"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:240
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:209
 #, java-format
 msgid ", the ground is expected to be {0}, but it is {1}"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:242
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:211
 #, java-format
 msgid ", the ground reads ''{0}'' (expected: ''{1}'')"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:245
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:214
 msgid ", there shouldn't be any wall at west"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:247
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:216
 msgid ", there should be a wall at west"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:250
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:219
 msgid ", there shouldn't be any wall at north"
 msgstr ""
 
-#: src/plm/universe/bugglequest/BuggleWorldCell.java:252
+#: src/plm/universe/bugglequest/BuggleWorldCell.java:221
 msgid ", there should be a wall at north"
 msgstr ""
 
@@ -1440,91 +1528,6 @@ msgstr ""
 msgid "Buggles cannot traverse walls"
 msgstr ""
 
-#: src/plm/universe/bugglequest/mapeditor/MainFrame.java:176
-msgid "Create New Map"
-msgstr ""
-
-#: src/plm/universe/bugglequest/mapeditor/MainFrame.java:228
-msgid "Open Map..."
-msgstr ""
-
-#: src/plm/universe/bugglequest/mapeditor/MainFrame.java:234
-msgid "PLM map files"
-msgstr ""
-
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:58
-msgid "Property"
-msgstr ""
-
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:58
-msgid "Value"
-msgstr ""
-
-#. The editor for the name
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:72
-msgid "World name"
-msgstr ""
-
-#. ---------- world width ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:84
-msgid "World width"
-msgstr ""
-
-#. ---------- world height ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:104
-msgid "World height"
-msgstr ""
-
-#. ---------- selected cell ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:124
-msgid "Selected cell X"
-msgstr ""
-
-#. ---------- selected cell ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:146
-msgid "Selected cell Y"
-msgstr ""
-
-#. ---------- Ground color ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:167
-msgid "Ground color (name or r/g/b)"
-msgstr ""
-
-#. ---------- top wall cell ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:184
-msgid "Top wall?"
-msgstr ""
-
-#. ---------- left wall cell ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:206
-msgid "Left wall?"
-msgstr ""
-
-#. ---------- have baggle ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:228
-msgid "Baggle?"
-msgstr ""
-
-#. ---------- Buggle name ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:259
-msgid "Buggle name"
-msgstr ""
-
-#. ---------- Buggle direction ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:270
-msgid "Buggle direction (N|S|E|W)"
-msgstr ""
-
-#. ---------- Buggle color ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:299
-msgid "Buggle color (name or r/g/b)"
-msgstr ""
-
-#. ---------- Buggle color ---------------
-#: src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java:315
-msgid "Brush color (name or r/g/b)"
-msgstr ""
-
 #: src/plm/universe/bugglequest/ui/BuggleButtonPanel.java:55
 #: src/plm/universe/bugglequest/ui/BuggleButtonPanel.java:232
 msgid "forward"
diff --git a/lib/l10n/fr.po b/lib/l10n/fr.po
index 69812e7..d1bd0fb 100644
--- a/lib/l10n/fr.po
+++ b/lib/l10n/fr.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PLM mission texts\n"
-"POT-Creation-Date: 2013-08-28 21:02+0300\n"
-"PO-Revision-Date: 2013-08-28 21:02+0200\n"
+"POT-Creation-Date: 2013-09-08 22:37+0300\n"
+"PO-Revision-Date: 2013-09-08 22:38+0200\n"
 "Last-Translator: Martin Quinson\n"
 "Language-Team: none\n"
 "Language: French\n"
@@ -1912,17 +1912,16 @@ msgid ""
 "them to show the tooltip, and experiment with the elements to see what they "
 "do.  The white area below is the console: this is where errors and messages "
 "get displayed. Note that when you successfully solve an exercise, the good "
-"news is spread on twitter.  Keep posted to the progress of your friends by "
-"following @jlmlovers :)"
+"news is spread on twitter.  Keep posted about the progress of your friends "
+"by following @jlmlovers :)"
 msgstr ""
 "Avant d'aller plus loin, familiarisez vous avec l'environnement. Observez "
 "les différents éléments composant la fenêtre, et placez la souris sur dessus "
 "pour voir les bulles d'aide, et essayez les pour voir ce qu'ils font. La "
 "zone blanche en bas est la console : c'est là que les erreurs et messages "
-"sont affichés. Si vous avez accès à internet, connectez vous au forum par le "
-"menu d'aide pour voir si d'autres personnes sont connectés. Notez que quand "
-"vous réussissez un exercice, la bonne nouvelle est envoyée sur twitter. "
-"Suivez les progrès de vos amis en suivant jlmlovers :)"
+"sont affichés.  Notez que quand vous réussissez un exercice, la bonne "
+"nouvelle est envoyée sur twitter. Suivez les progrès de vos amis en suivant "
+"@jlmlovers :)"
 
 #. type: Content of: <p>
 #: src/lessons/welcome/environment/Environment.html:32
@@ -2040,9 +2039,13 @@ msgid ""
 "written in the following way[!python|scala] (you can also add semi-columns "
 "at the end of the lines, but this is not mandatory)[/!]."
 msgstr ""
-"[!thelang] veut que les instructions soient séparées [!python|scala]soit [/!]par des points-virgules (;)[!python|scala], soit par des retours à la ligne[/!].\n"
-"L'exemple ci-dessus de recette s'écrirait donc à peu près comme ci-dessous. \n"
-"[!python|scala] (vous pouvez aussi ajouter des points-virgules en fin de lignes, mais ce n'est pas indispensable)[/!]."
+"[!thelang] veut que les instructions soient séparées [!python|scala]soit "
+"[/!]par des points-virgules (;)[!python|scala], soit par des retours à la "
+"ligne[/!].\n"
+"L'exemple ci-dessus de recette s'écrirait donc à peu près comme ci-"
+"dessous. \n"
+"[!python|scala] (vous pouvez aussi ajouter des points-virgules en fin de "
+"lignes, mais ce n'est pas indispensable)[/!]."
 
 #. type: Content of: <pre>
 #: src/lessons/welcome/instructions/Instructions.html:21
@@ -2089,7 +2092,7 @@ msgstr "casserLesOeufs(); ajouterDuSel(); melangerLeTout(); faireCuire();\n"
 #: src/lessons/welcome/variables/Variables.html:130
 #: src/lessons/welcome/loopfor/LoopFor.html:69
 #: src/lessons/welcome/loopdowhile/LoopDoWhile.html:53
-#: src/lessons/welcome/loopdowhile/Poucet.html:33
+#: src/lessons/welcome/loopdowhile/Poucet.html:36
 #: src/lessons/welcome/methods/args/MethodsArgs.html:65
 #: src/lessons/welcome/methods/picture/MethodsPicture.html:39
 #: src/lessons/welcome/bdr/BDR.html:59 src/lessons/welcome/bdr/BDR.html:193
@@ -2167,8 +2170,8 @@ msgid ""
 "brushUp()[!java];[/!]\n"
 "brushDown()[!java];[/!]\n"
 msgstr ""
-"leveCrayon()[!java];[/!]\n"
-"baisseCrayon()[!java];[/!]\n"
+"leveBrosse()[!java];[/!]\n"
+"baisseBrosse()[!java];[/!]\n"
 
 #. type: Content of: <p><p>
 #: src/lessons/welcome/instructions/Instructions.html:60
@@ -2191,7 +2194,7 @@ msgstr ""
 #: src/lessons/welcome/methods/returning/MethodsReturning.html:48
 #: src/lessons/welcome/methods/args/MethodsArgs.html:69
 #: src/lessons/welcome/methods/slug/SlugHunting.html:18
-#: src/lessons/welcome/methods/slug/SlugTracking.html:19
+#: src/lessons/welcome/methods/slug/SlugTracking.html:22
 #: src/lessons/welcome/bdr/BDR.html:149 src/lessons/welcome/bdr/BDR2.html:131
 #: src/lessons/maze/wallfollower/WallFollowerMaze.html:17
 #: src/lessons/maze/pledge/PledgeMaze.html:36
@@ -3620,14 +3623,14 @@ msgstr ""
 #. type: Content of: <p>
 #: src/lessons/welcome/loopfor/LoopStairs.html:10
 msgid ""
-"And before that, walk a bit forward to reach that stair, and ensure that you "
-"are in the right situation for your loop content to run properly. And once "
-"you reach the heaven, take some steps in your new home."
+"Before that, walk a bit forward to reach that stair, and ensure that you are "
+"in the right situation for your loop content to run properly. And once you "
+"reach the heaven, take some steps in your new home.  Meanwhile, you just "
+"have to walk your way, the colors appear automagically."
 msgstr ""
-"Avant cela, vous devez marcher un peu pour atteindre l'escalier et vous "
-"assurer que vous êtes dans la bonne position pour que le contenu de votre "
-"boucle s'exécute correctement. Et une fois que vous avez atteint le paradis, "
-"faites quelques pas dans votre nouvelle demeure."
+"Avant cela, vous devez marcher un peu pour atteindre l'escalier et vous assurer que vous êtes dans la bonne position pour que le contenu de votre boucle s'exécute correctement. \n"
+"Une fois que vous avez atteint le paradis, faites quelques pas dans votre nouvelle demeure.\n"
+"Chemin faisant, les couleurs apparaissent d'elles-mêmes sans que vous n'ayez rien à faire."
 
 #. type: Content of: <h2>
 #: src/lessons/welcome/loopfor/LoopCourse.html:1
@@ -3775,7 +3778,7 @@ msgstr "Exécuter le corps de boucle au moins une fois"
 
 #. type: Content of: <p><p><p>
 #: src/lessons/welcome/loopdowhile/LoopDoWhile.html:25
-#: src/lessons/welcome/loopdowhile/Poucet.html:27
+#: src/lessons/welcome/loopdowhile/Poucet.html:30
 #: src/lessons/turmites/helloturmite/HelloTurmite.html:53
 #: src/lessons/welcome/array/basics/Array1.html:98
 msgid "[!python]"
@@ -3903,6 +3906,17 @@ msgstr ""
 #. type: Content of: <p>
 #: src/lessons/welcome/loopdowhile/Poucet.html:13
 msgid ""
+"You should count exactly 5 cells per corridor, the one at the intersection "
+"counting as the last cell of the previous corridor, not as the first cell "
+"after your turn."
+msgstr ""
+"Vous devez compter exactement 5 cases par couloir. Les cases aux "
+"intersections doivent être comptées comme les dernières de leur couloir, pas "
+"comme les premières après avoir tourné."
+
+#. type: Content of: <p>
+#: src/lessons/welcome/loopdowhile/Poucet.html:16
+msgid ""
 "So, the general form of your code must be something like \"while I did not "
 "find the exit, take the next corridor to decide whether I should turn left "
 "or right at the next intersection\". You can determine whether you are on "
@@ -3916,7 +3930,7 @@ msgstr ""
 "méthode <code>sortieTrouvee()</code> fournie."
 
 #. type: Content of: <p>
-#: src/lessons/welcome/loopdowhile/Poucet.html:17
+#: src/lessons/welcome/loopdowhile/Poucet.html:20
 msgid ""
 "To take one corridor, you simply have to run from one intersection to "
 "another while counting the baggles you see on your path. The method "
@@ -3947,7 +3961,7 @@ msgstr ""
 "faut s'arrêter ou non.[/!]"
 
 #. type: Content of: <pre>
-#: src/lessons/welcome/loopdowhile/Poucet.html:28
+#: src/lessons/welcome/loopdowhile/Poucet.html:31
 #, no-wrap
 msgid ""
 "firstTime = True\n"
@@ -3961,12 +3975,12 @@ msgstr ""
 "  (le corps de votre boucle)\n"
 
 #. type: Attribute 'alt' of: <p><div>
-#: src/lessons/welcome/loopdowhile/Poucet.html:35
+#: src/lessons/welcome/loopdowhile/Poucet.html:38
 msgid "I cannot imagine how to count the baggles I see."
 msgstr "Je n'arrive pas à imaginer comment compter les baggles que je vois"
 
 #. type: Content of: <p><div>
-#: src/lessons/welcome/loopdowhile/Poucet.html:36
+#: src/lessons/welcome/loopdowhile/Poucet.html:39
 msgid ""
 "You need a variable that is initialized to 0, and incremented each time you "
 "see a baggle on the ground. A variable used this way is often called "
@@ -3977,13 +3991,13 @@ msgstr ""
 "<i>compteur</i>."
 
 #. type: Content of: <p><div>
-#: src/lessons/welcome/loopdowhile/Poucet.html:38
+#: src/lessons/welcome/loopdowhile/Poucet.html:41
 msgid ""
 "Don't forget to reset your counter to 0 at the beginning of each corridor!"
 msgstr "N'oubliez pas de remettre le compteur à 0 au début de chaque couloir!"
 
 #. type: Content of: <p>
-#: src/lessons/welcome/loopdowhile/Poucet.html:41
+#: src/lessons/welcome/loopdowhile/Poucet.html:44
 msgid ""
 "Oh, and when you reach the exit, don't forget to take an extra step to "
 "actually exit the maze!"
@@ -4903,11 +4917,10 @@ msgid ""
 "of that amount of steps if the boolean is false."
 msgstr ""
 "Cette fois, vous devez écrire une méthode \n"
-"<code>[!java]deplace(int nbPas,boolean versLAvant)[/!] [!"
-"scala]deplace(nbPas: Int,versLAvant: Boolean)[/!] [!python]deplace(nbPas,"
-"versLAvant)[/!] </code> qui se déplace de <code>nbPas</code> pas. Si "
-"<code>versLAvant</code> est vrai, il faut avancer de ce nombre de pas; dans "
-"le cas contraire, il faut reculer."
+"<code>[!java]move(int nbPas,boolean versLAvant)[/!] [!scala]move(nbPas: Int,"
+"versLAvant: Boolean)[/!] [!python]move(nbPas,versLAvant)[/!] </code> qui se "
+"déplace de <code>nbPas</code> pas. Si <code>versLAvant</code> est vrai, il "
+"faut avancer de ce nombre de pas; dans le cas contraire, il faut reculer."
 
 #. type: Content of: <p>
 #: src/lessons/welcome/methods/args/MethodsArgs.html:78
@@ -5261,7 +5274,9 @@ msgid ""
 "green</code> with an <code>==</code> sign but instead you have to write "
 "something like <code>getGroundColor().equals(Color.green)</code>. This is "
 "because green is an <i>object</i> in Java, and <code>.equals()</code> is the "
-"way to go to test equality between Java objects.[/!]"
+"way to go to test equality between Java objects.[/!] [!python|scala]So you "
+"just have to test whether the returned color is equal to the value "
+"<code>Color.green</code>, that represents the green color.[/!]"
 msgstr ""
 "Votre outil pour cela est la méthode <code>getCouleurSol()</code> qui "
 "retourne la couleur du sol dans la case où se trouve la buggle. Il vous faut "
@@ -5270,10 +5285,13 @@ msgstr ""
 "la couleur retournée est le vert, mais vous devez plutôt écrire quelque "
 "chose comme <code>getCouleurSol().equals(Color.green)</code>. C'est parce "
 "que les couleurs sont des <i>objets</i> en Java, et que <code>.equals()</"
-"code> est la marche à suivre pour tester l'égalité d'objets Java.[/!]"
+"code> est la marche à suivre pour tester l'égalité d'objets Java.[/!]\n"
+"[!python|scala]Il suffit ensuite de tester si la couleur renvoyée par cette "
+"fonction est égale à la valeur <code>Color.green</code>, qui représente a "
+"couleur verte.[/!]"
 
 #. type: Content of: <p>
-#: src/lessons/welcome/methods/slug/SlugTracking.html:20
+#: src/lessons/welcome/methods/slug/SlugTracking.html:23
 msgid ""
 "Complete the <code>isFacingTrail()</code> method (which gets called "
 "automatically)."
@@ -5687,7 +5705,7 @@ msgid ""
 "there is already a message on the ground, the new content is added at the "
 "end of the existing message."
 msgstr ""
-"<code>[!java]void[/!] writeMessage([!java]String [/!]msg[!java]: "
+"<code>[!java]void[/!] ecritMessage([!java]String [/!]msg[!java]: "
 "String[/!])</code> : écrit le message spécifié en argument par terre. S'il y "
 "a déjà quelque chose écrit par terre, on ajoute le nouveau message à la fin "
 "du précédent."
@@ -5728,12 +5746,10 @@ msgstr "Quoi faire"
 msgid "Mnemonic"
 msgstr "Mnémotechnique"
 
-#. type: Content of: <table><tr><td>
+#. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:159 src/lessons/welcome/bdr/BDR2.html:141
-#: src/lessons/turmites/turmitecreator/TurmiteCreator.html:30
-#: src/lessons/turmites/turmitecreator/TurmiteCreator.html:33
-msgid "R"
-msgstr "R"
+msgid "[!java]'R'[/!][!scala|python]\"R\"[/!]"
+msgstr "[!java]'R'[/!][!scala|python]\"R\"[/!]"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:159 src/lessons/welcome/bdr/BDR2.html:141
@@ -5747,8 +5763,8 @@ msgstr "Right"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:160 src/lessons/welcome/bdr/BDR2.html:142
-msgid "L"
-msgstr "L"
+msgid "[!java]'L'[/!][!scala|python]\"L\"[/!]"
+msgstr "[!java]'L'[/!][!scala|python]\"L\"[/!]"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:160 src/lessons/welcome/bdr/BDR2.html:142
@@ -5762,8 +5778,8 @@ msgstr "Left"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:161 src/lessons/welcome/bdr/BDR2.html:143
-msgid "I"
-msgstr "I"
+msgid "[!java]'I'[/!][!scala|python]\"I\"[/!]"
+msgstr "[!java]'I'[/!][!scala|python]\"I\"[/!]"
 
 #. type: Content of: <table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:161
@@ -5777,8 +5793,8 @@ msgstr "Inverse"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:163 src/lessons/welcome/bdr/BDR2.html:145
-msgid "A"
-msgstr "A"
+msgid "[!java]'A'[/!][!scala|python]\"A\"[/!]"
+msgstr "[!java]'A'[/!][!scala|python]\"A\"[/!]"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:163 src/lessons/welcome/bdr/BDR2.html:145
@@ -5792,8 +5808,8 @@ msgstr "Première lettre de l'alphabet"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:164 src/lessons/welcome/bdr/BDR2.html:146
-msgid "B"
-msgstr "B"
+msgid "[!java]'B'[/!][!scala|python]\"B\"[/!]"
+msgstr "[!java]'B'[/!][!scala|python]\"B\"[/!]"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:164 src/lessons/welcome/bdr/BDR2.html:146
@@ -5807,8 +5823,8 @@ msgstr "Deuxième lettre de l'alphabet"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:165 src/lessons/welcome/bdr/BDR2.html:147
-msgid "C"
-msgstr "C"
+msgid "[!java]'C'[/!][!scala|python]\"C\"[/!]"
+msgstr "[!java]'C'[/!][!scala|python]\"C\"[/!]"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:165 src/lessons/welcome/bdr/BDR2.html:147
@@ -5822,8 +5838,8 @@ msgstr "Troisième lettre de l'alphabet"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:167 src/lessons/welcome/bdr/BDR2.html:152
-msgid "Z"
-msgstr "Z"
+msgid "[!java]'Z'[/!][!scala|python]\"Z\"[/!]"
+msgstr "[!java]'Z'[/!][!scala|python]\"Z\"[/!]"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:167 src/lessons/welcome/bdr/BDR2.html:152
@@ -5837,8 +5853,8 @@ msgstr "A une lettre de la fin de l'alphabet"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:168 src/lessons/welcome/bdr/BDR2.html:153
-msgid "Y"
-msgstr "Y"
+msgid "[!java]'Y'[/!][!scala|python]\"Y\"[/!]"
+msgstr "[!java]'Y'[/!][!scala|python]\"Y\"[/!]"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:168 src/lessons/welcome/bdr/BDR2.html:153
@@ -5852,8 +5868,8 @@ msgstr "A deux lettres de la fin de l'alphabet"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:169 src/lessons/welcome/bdr/BDR2.html:154
-msgid "X"
-msgstr "X"
+msgid "[!java]'X'[/!][!scala|python]\"X\"[/!]"
+msgstr "[!java]'X'[/!][!scala|python]\"X\"[/!]"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:169 src/lessons/welcome/bdr/BDR2.html:154
@@ -6327,8 +6343,8 @@ msgstr "Se retourner (faire demi-tour) et avancer d'une case"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:148
-msgid "D"
-msgstr "D"
+msgid "[!java]'D'[/!][!scala|python]\"D\"[/!]"
+msgstr "[!java]'D'[/!][!scala|python]\"D\"[/!]"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:148
@@ -6337,8 +6353,8 @@ msgstr "Avancer de quatre cases"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:149
-msgid "E"
-msgstr "E"
+msgid "[!java]'E'[/!][!scala|python]\"E\"[/!]"
+msgstr "[!java]'E'[/!][!scala|python]\"E\"[/!]"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:149
@@ -6347,8 +6363,8 @@ msgstr "Avancer de cinq cases"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:150
-msgid "F"
-msgstr "F"
+msgid "[!java]'F'[/!][!scala|python]\"F\"[/!]"
+msgstr "[!java]'F'[/!][!scala|python]\"F\"[/!]"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:150
@@ -6357,8 +6373,8 @@ msgstr "Avancer de six cases"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:155
-msgid "W"
-msgstr "W"
+msgid "[!java]'W'[/!][!scala|python]\"W\"[/!]"
+msgstr "[!java]'W'[/!][!scala|python]\"W\"[/!]"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:155
@@ -6367,8 +6383,8 @@ msgstr "Reculer de quatre cases"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:156
-msgid "V"
-msgstr "V"
+msgid "[!java]'V'[/!][!scala|python]\"V\"[/!]"
+msgstr "[!java]'V'[/!][!scala|python]\"V\"[/!]"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:156
@@ -6377,8 +6393,8 @@ msgstr "Reculer de cinq cases"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:157
-msgid "U"
-msgstr "U"
+msgid "[!java]'U'[/!][!scala|python]\"U\"[/!]"
+msgstr "[!java]'U'[/!][!scala|python]\"U\"[/!]"
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:157
@@ -7072,7 +7088,7 @@ msgstr ""
 msgid ""
 "Each such information set contains 3 values. The first one is the rank of "
 "the color to write on the ground. The second is the move to do, with the "
-"following notation: 0=stop, 1=noturn, 2=right, 4=u-turn, 8=left. Note that "
+"following notation: 0=stop, 1=noturn, 2=left, 4=u-turn, 8=right. Note that "
 "if the command is stop, you shouldn't even move forward on that step (but "
 "you shouldn't stop your program either: the next steps can do something else "
 "in a future state). Finally, the third integer is the next <code>state</"
@@ -7081,7 +7097,7 @@ msgstr ""
 "Chaque ensemble d'informations contient trois valeurs.\n"
 "La première est le rang de la couleur à mettre sur le sol.\n"
 "La deuxième est le mouvement à effectuer, avec la notation suivante : "
-"0=stop, 1=pas de virage, 2=droite, 4=demi-tour, 8=gauche. Veuillez noter que "
+"0=stop, 1=pas de virage, 2=gauche, 4=demi-tour, 8=left. Veuillez noter que "
 "si l'instruction est stop, vous ne devez même pas avancer sur cette étape "
 "(mais vous ne devez pas arrêter votre programme pour autant : les prochains "
 "pas peuvent faire quelque chose d'autre). Finalement, le troisième entier "
@@ -7287,6 +7303,12 @@ msgid "Current state"
 msgstr "État courant"
 
 #. type: Content of: <table><tr><td>
+#: src/lessons/turmites/turmitecreator/TurmiteCreator.html:30
+#: src/lessons/turmites/turmitecreator/TurmiteCreator.html:33
+msgid "R"
+msgstr "R"
+
+#. type: Content of: <table><tr><td>
 #: src/lessons/turmites/turmitecreator/TurmiteCreator.html:40
 #: src/lessons/turmites/turmitecreator/TurmiteCreator.html:43
 msgid "N"
@@ -12347,8 +12369,8 @@ msgid ""
 "[/!][!scala]str.toInt[/!][!python]int(str)[/!]</code> transforms the string "
 "<code>str</code> into an integer by <i>reading</i> it."
 msgstr ""
-"<code>readMessage()</code> lit l'indication au sol sous forme d'une chaîne "
-"de caractères, \n"
+"<code>litMessage()</code> lit l'indication au sol sous forme d'une chaîne de "
+"caractères, \n"
 "tandis que <code>[!java]Integer.parseInt(ch)[/!][!scala]ch.toInt[/!][!"
 "python]int(ch)[/!]</code> \n"
 "transforme la chaîne <code>ch</code> en un entier en la <i>lisant</i>."
diff --git a/lib/l10n/plm.pot b/lib/l10n/plm.pot
index 597118f..192e4ab 100644
--- a/lib/l10n/plm.pot
+++ b/lib/l10n/plm.pot
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2013-08-28 21:02+0300\n"
+"POT-Creation-Date: 2013-09-08 22:37+0300\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -1526,8 +1526,8 @@ msgid ""
 "them to show the tooltip, and experiment with the elements to see what they "
 "do.  The white area below is the console: this is where errors and messages "
 "get displayed. Note that when you successfully solve an exercise, the good "
-"news is spread on twitter.  Keep posted to the progress of your friends by "
-"following @jlmlovers :)"
+"news is spread on twitter.  Keep posted about the progress of your friends "
+"by following @jlmlovers :)"
 msgstr ""
 
 #. type: Content of: <p>
@@ -1646,7 +1646,7 @@ msgid "meltTheChocolatePieces(); addSugar(); coolMix(); serve()\n"
 msgstr ""
 
 #. type: Content of: <p><p><p>
-#: src/lessons/welcome/instructions/Instructions.html:34 src/lessons/welcome/variables/Variables.html:31 src/lessons/welcome/variables/Variables.html:61 src/lessons/welcome/variables/Variables.html:130 src/lessons/welcome/loopfor/LoopFor.html:69 src/lessons/welcome/loopdowhile/LoopDoWhile.html:53 src/lessons/welcome/loopdowhile/Poucet.html:33 src/lessons/welcome/methods/args/MethodsArgs.html:65 src/lessons/welcome/methods/picture/MethodsPicture.html:39 src/lessons/welcome/bdr/BDR.html:59 [...]
+#: src/lessons/welcome/instructions/Instructions.html:34 src/lessons/welcome/variables/Variables.html:31 src/lessons/welcome/variables/Variables.html:61 src/lessons/welcome/variables/Variables.html:130 src/lessons/welcome/loopfor/LoopFor.html:69 src/lessons/welcome/loopdowhile/LoopDoWhile.html:53 src/lessons/welcome/loopdowhile/Poucet.html:36 src/lessons/welcome/methods/args/MethodsArgs.html:65 src/lessons/welcome/methods/picture/MethodsPicture.html:39 src/lessons/welcome/bdr/BDR.html:59 [...]
 msgid "[/!]"
 msgstr ""
 
@@ -1706,7 +1706,7 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <h3>
-#: src/lessons/welcome/instructions/Instructions.html:64 src/lessons/welcome/conditions/Conditions.html:108 src/lessons/welcome/loopwhile/LoopWhile.html:32 src/lessons/welcome/loopwhile/BaggleSeeker.html:8 src/lessons/welcome/variables/Variables.html:97 src/lessons/welcome/loopfor/LoopFor.html:71 src/lessons/welcome/methods/basics/Methods.html:95 src/lessons/welcome/methods/basics/MethodsDogHouse.html:37 src/lessons/welcome/methods/returning/MethodsReturning.html:48 src/lessons/welcome/m [...]
+#: src/lessons/welcome/instructions/Instructions.html:64 src/lessons/welcome/conditions/Conditions.html:108 src/lessons/welcome/loopwhile/LoopWhile.html:32 src/lessons/welcome/loopwhile/BaggleSeeker.html:8 src/lessons/welcome/variables/Variables.html:97 src/lessons/welcome/loopfor/LoopFor.html:71 src/lessons/welcome/methods/basics/Methods.html:95 src/lessons/welcome/methods/basics/MethodsDogHouse.html:37 src/lessons/welcome/methods/returning/MethodsReturning.html:48 src/lessons/welcome/m [...]
 msgid "Exercise goal"
 msgstr ""
 
@@ -2716,9 +2716,10 @@ msgstr ""
 #. type: Content of: <p>
 #: src/lessons/welcome/loopfor/LoopStairs.html:10
 msgid ""
-"And before that, walk a bit forward to reach that stair, and ensure that you "
-"are in the right situation for your loop content to run properly. And once "
-"you reach the heaven, take some steps in your new home."
+"Before that, walk a bit forward to reach that stair, and ensure that you are "
+"in the right situation for your loop content to run properly. And once you "
+"reach the heaven, take some steps in your new home.  Meanwhile, you just "
+"have to walk your way, the colors appear automagically."
 msgstr ""
 
 #. type: Content of: <h2>
@@ -2825,7 +2826,7 @@ msgid "Executing the loop body at least once"
 msgstr ""
 
 #. type: Content of: <p><p><p>
-#: src/lessons/welcome/loopdowhile/LoopDoWhile.html:25 src/lessons/welcome/loopdowhile/Poucet.html:27 src/lessons/turmites/helloturmite/HelloTurmite.html:53 src/lessons/welcome/array/basics/Array1.html:98
+#: src/lessons/welcome/loopdowhile/LoopDoWhile.html:25 src/lessons/welcome/loopdowhile/Poucet.html:30 src/lessons/turmites/helloturmite/HelloTurmite.html:53 src/lessons/welcome/array/basics/Array1.html:98
 msgid "[!python]"
 msgstr ""
 
@@ -2914,6 +2915,14 @@ msgstr ""
 #. type: Content of: <p>
 #: src/lessons/welcome/loopdowhile/Poucet.html:13
 msgid ""
+"You should count exactly 5 cells per corridor, the one at the intersection "
+"counting as the last cell of the previous corridor, not as the first cell "
+"after your turn."
+msgstr ""
+
+#. type: Content of: <p>
+#: src/lessons/welcome/loopdowhile/Poucet.html:16
+msgid ""
 "So, the general form of your code must be something like \"while I did not "
 "find the exit, take the next corridor to decide whether I should turn left "
 "or right at the next intersection\". You can determine whether you are on "
@@ -2922,7 +2931,7 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <p>
-#: src/lessons/welcome/loopdowhile/Poucet.html:17
+#: src/lessons/welcome/loopdowhile/Poucet.html:20
 msgid ""
 "To take one corridor, you simply have to run from one intersection to "
 "another while counting the baggles you see on your path. The method "
@@ -2939,7 +2948,7 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <pre>
-#: src/lessons/welcome/loopdowhile/Poucet.html:28
+#: src/lessons/welcome/loopdowhile/Poucet.html:31
 #, no-wrap
 msgid ""
 "firstTime = True\n"
@@ -2949,12 +2958,12 @@ msgid ""
 msgstr ""
 
 #. type: Attribute 'alt' of: <p><div>
-#: src/lessons/welcome/loopdowhile/Poucet.html:35
+#: src/lessons/welcome/loopdowhile/Poucet.html:38
 msgid "I cannot imagine how to count the baggles I see."
 msgstr ""
 
 #. type: Content of: <p><div>
-#: src/lessons/welcome/loopdowhile/Poucet.html:36
+#: src/lessons/welcome/loopdowhile/Poucet.html:39
 msgid ""
 "You need a variable that is initialized to 0, and incremented each time you "
 "see a baggle on the ground. A variable used this way is often called "
@@ -2962,12 +2971,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <p><div>
-#: src/lessons/welcome/loopdowhile/Poucet.html:38
+#: src/lessons/welcome/loopdowhile/Poucet.html:41
 msgid "Don't forget to reset your counter to 0 at the beginning of each corridor!"
 msgstr ""
 
 #. type: Content of: <p>
-#: src/lessons/welcome/loopdowhile/Poucet.html:41
+#: src/lessons/welcome/loopdowhile/Poucet.html:44
 msgid ""
 "Oh, and when you reach the exit, don't forget to take an extra step to "
 "actually exit the maze!"
@@ -3855,11 +3864,13 @@ msgid ""
 "to write something like "
 "<code>getGroundColor().equals(Color.green)</code>. This is because green is "
 "an <i>object</i> in Java, and <code>.equals()</code> is the way to go to "
-"test equality between Java objects.[/!]"
+"test equality between Java objects.[/!] [!python|scala]So you just have to "
+"test whether the returned color is equal to the value "
+"<code>Color.green</code>, that represents the green color.[/!]"
 msgstr ""
 
 #. type: Content of: <p>
-#: src/lessons/welcome/methods/slug/SlugTracking.html:20
+#: src/lessons/welcome/methods/slug/SlugTracking.html:23
 msgid ""
 "Complete the <code>isFacingTrail()</code> method (which gets called "
 "automatically)."
@@ -4179,9 +4190,9 @@ msgstr ""
 msgid "Mnemonic"
 msgstr ""
 
-#. type: Content of: <table><tr><td>
-#: src/lessons/welcome/bdr/BDR.html:159 src/lessons/welcome/bdr/BDR2.html:141 src/lessons/turmites/turmitecreator/TurmiteCreator.html:30 src/lessons/turmites/turmitecreator/TurmiteCreator.html:33
-msgid "R"
+#. type: Content of: <p><p><p><table><tr><td>
+#: src/lessons/welcome/bdr/BDR.html:159 src/lessons/welcome/bdr/BDR2.html:141
+msgid "[!java]'R'[/!][!scala|python]\"R\"[/!]"
 msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
@@ -4196,7 +4207,7 @@ msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:160 src/lessons/welcome/bdr/BDR2.html:142
-msgid "L"
+msgid "[!java]'L'[/!][!scala|python]\"L\"[/!]"
 msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
@@ -4211,7 +4222,7 @@ msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:161 src/lessons/welcome/bdr/BDR2.html:143
-msgid "I"
+msgid "[!java]'I'[/!][!scala|python]\"I\"[/!]"
 msgstr ""
 
 #. type: Content of: <table><tr><td>
@@ -4226,7 +4237,7 @@ msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:163 src/lessons/welcome/bdr/BDR2.html:145
-msgid "A"
+msgid "[!java]'A'[/!][!scala|python]\"A\"[/!]"
 msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
@@ -4241,7 +4252,7 @@ msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:164 src/lessons/welcome/bdr/BDR2.html:146
-msgid "B"
+msgid "[!java]'B'[/!][!scala|python]\"B\"[/!]"
 msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
@@ -4256,7 +4267,7 @@ msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:165 src/lessons/welcome/bdr/BDR2.html:147
-msgid "C"
+msgid "[!java]'C'[/!][!scala|python]\"C\"[/!]"
 msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
@@ -4271,7 +4282,7 @@ msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:167 src/lessons/welcome/bdr/BDR2.html:152
-msgid "Z"
+msgid "[!java]'Z'[/!][!scala|python]\"Z\"[/!]"
 msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
@@ -4286,7 +4297,7 @@ msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:168 src/lessons/welcome/bdr/BDR2.html:153
-msgid "Y"
+msgid "[!java]'Y'[/!][!scala|python]\"Y\"[/!]"
 msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
@@ -4301,7 +4312,7 @@ msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR.html:169 src/lessons/welcome/bdr/BDR2.html:154
-msgid "X"
+msgid "[!java]'X'[/!][!scala|python]\"X\"[/!]"
 msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
@@ -4628,7 +4639,7 @@ msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:148
-msgid "D"
+msgid "[!java]'D'[/!][!scala|python]\"D\"[/!]"
 msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
@@ -4638,7 +4649,7 @@ msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:149
-msgid "E"
+msgid "[!java]'E'[/!][!scala|python]\"E\"[/!]"
 msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
@@ -4648,7 +4659,7 @@ msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:150
-msgid "F"
+msgid "[!java]'F'[/!][!scala|python]\"F\"[/!]"
 msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
@@ -4658,7 +4669,7 @@ msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:155
-msgid "W"
+msgid "[!java]'W'[/!][!scala|python]\"W\"[/!]"
 msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
@@ -4668,7 +4679,7 @@ msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:156
-msgid "V"
+msgid "[!java]'V'[/!][!scala|python]\"V\"[/!]"
 msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
@@ -4678,7 +4689,7 @@ msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
 #: src/lessons/welcome/bdr/BDR2.html:157
-msgid "U"
+msgid "[!java]'U'[/!][!scala|python]\"U\"[/!]"
 msgstr ""
 
 #. type: Content of: <p><p><p><table><tr><td>
@@ -5173,7 +5184,7 @@ msgstr ""
 msgid ""
 "Each such information set contains 3 values. The first one is the rank of "
 "the color to write on the ground. The second is the move to do, with the "
-"following notation: 0=stop, 1=noturn, 2=right, 4=u-turn, 8=left. Note that "
+"following notation: 0=stop, 1=noturn, 2=left, 4=u-turn, 8=right. Note that "
 "if the command is stop, you shouldn't even move forward on that step (but "
 "you shouldn't stop your program either: the next steps can do something else "
 "in a future state). Finally, the third integer is the next "
@@ -5318,6 +5329,11 @@ msgid "Current state"
 msgstr ""
 
 #. type: Content of: <table><tr><td>
+#: src/lessons/turmites/turmitecreator/TurmiteCreator.html:30 src/lessons/turmites/turmitecreator/TurmiteCreator.html:33
+msgid "R"
+msgstr ""
+
+#. type: Content of: <table><tr><td>
 #: src/lessons/turmites/turmitecreator/TurmiteCreator.html:40 src/lessons/turmites/turmitecreator/TurmiteCreator.html:43
 msgid "N"
 msgstr ""
diff --git a/lib/resources/plm.configuration.properties b/lib/resources/plm.configuration.properties
index 10fbaae..a7e625e 100644
--- a/lib/resources/plm.configuration.properties
+++ b/lib/resources/plm.configuration.properties
@@ -1,7 +1,7 @@
-#Fri, 30 Aug 2013 15:10:56 +0200
+#Sun, 08 Sep 2013 22:44:35 +0200
 # PLM default configuration
-plm.major.version=2.2
-plm.minor.version=20130830
+plm.major.version=2.2.1
+plm.minor.version=20130908
 
 # This should be self explanatory, actually
 # Its value is automatically updated and saved in the personal property file
diff --git a/src/lessons/sort/selection/AlgSelectionSort.java b/src/lessons/sort/selection/AlgSelectionSort.java
index 2fc74ad..eb7ff3d 100644
--- a/src/lessons/sort/selection/AlgSelectionSort.java
+++ b/src/lessons/sort/selection/AlgSelectionSort.java
@@ -10,7 +10,7 @@ public class AlgSelectionSort extends ExerciseTemplated {
 	public AlgSelectionSort(Lesson lesson) {
 		super(lesson);
 		SortingWorld[] myWorlds = new SortingWorld[2];
-		myWorlds[0] = new SortingWorld("Functional test",10);
+		myWorlds[0] = new SortingWorld("Functional test",10,false);
 		myWorlds[1] = new SortingWorld("Performance test (150 elms)",150);
 
 		for ( int i = 0 ; i < myWorlds.length ; i++)
diff --git a/src/lessons/turmites/helloturmite/HelloTurmite.fr.html b/src/lessons/turmites/helloturmite/HelloTurmite.fr.html
index de864f0..620d06a 100644
--- a/src/lessons/turmites/helloturmite/HelloTurmite.fr.html
+++ b/src/lessons/turmites/helloturmite/HelloTurmite.fr.html
@@ -26,7 +26,7 @@ relative à votre situation actuelle en utilisant
 <p>Chaque ensemble d'informations contient trois valeurs.
 La première est le rang de la couleur à mettre sur le sol.
 La deuxième est le mouvement à effectuer, avec la notation suivante :
-0=stop, 1=pas de virage, 2=droite, 4=demi-tour, 8=gauche. Veuillez noter que
+0=stop, 1=pas de virage, 2=gauche, 4=demi-tour, 8=left. Veuillez noter que
 si l'instruction est stop, vous ne devez même pas avancer sur cette étape
 (mais vous ne devez pas arrêter votre programme pour autant : les prochains
 pas peuvent faire quelque chose d'autre). Finalement, le troisième entier
diff --git a/src/lessons/turmites/helloturmite/HelloTurmite.html b/src/lessons/turmites/helloturmite/HelloTurmite.html
index b7602be..b39ea82 100644
--- a/src/lessons/turmites/helloturmite/HelloTurmite.html
+++ b/src/lessons/turmites/helloturmite/HelloTurmite.html
@@ -23,7 +23,7 @@ to your current situation by using
 
 <p>Each such information set contains 3 values. The first one is the rank of the 
 color to write on the ground. The second is the move to do, with the following 
-notation: 0=stop, 1=noturn, 2=right, 4=u-turn, 8=left. Note that if the command is stop, 
+notation: 0=stop, 1=noturn, 2=left, 4=u-turn, 8=right. Note that if the command is stop, 
 you shouldn't even move forward on that step (but you shouldn't stop your program 
 either: the next steps can do something else in a future state). Finally, the third integer is the 
 next <code>state</code> value to go into after this iteration.</p> 
diff --git a/src/lessons/welcome/array/basics/Array2.fr.html b/src/lessons/welcome/array/basics/Array2.fr.html
index f9dd5f2..ceb00b2 100644
--- a/src/lessons/welcome/array/basics/Array2.fr.html
+++ b/src/lessons/welcome/array/basics/Array2.fr.html
@@ -15,8 +15,8 @@ obtenir l'information sous forme d'un entier, on peut utiliser:</p>
 
 <pre>[!java]int decalage = Integer.parseInt(readMessage())[/!][!python]decalage = int( readMessage() )[/!][!scala]val decalage = readMessage().toInt[/!]</pre>
 
-<p><code>readMessage()</code> lit l'indication au sol sous forme d'une chaîne
-de caractères,
+<p><code>litMessage()</code> lit l'indication au sol sous forme d'une chaîne de
+caractères,
 tandis que
 <code>[!java]Integer.parseInt(ch)[/!][!scala]ch.toInt[/!][!python]int(ch)[/!]</code>
 
diff --git a/src/lessons/welcome/bdr/BDR.fr.html b/src/lessons/welcome/bdr/BDR.fr.html
index f98430a..72a7417 100644
--- a/src/lessons/welcome/bdr/BDR.fr.html
+++ b/src/lessons/welcome/bdr/BDR.fr.html
@@ -148,7 +148,7 @@ un message écrit par terre.</li>
   <li><code>[!java]String [/!]readMessage()[!java]: String[/!]</code> : renvoie le
 message qu'il y a écrit par terre (s'il y a rien, on obtient une chaîne
 vide).</li>
-  <li><code>[!java]void[/!] writeMessage([!java]String [/!]msg[!java]:
+  <li><code>[!java]void[/!] ecritMessage([!java]String [/!]msg[!java]:
 String[/!])</code> : écrit le message spécifié en argument par terre. S'il y
 a déjà quelque chose écrit par terre, on ajoute le nouveau message à la fin
 du précédent.</li>
@@ -166,17 +166,17 @@ indications sont des messages au sol, avec le code suivant:
      <td>Quoi faire</td>
      <td>Mnémotechnique</td></tr>
 
- <tr><td>R</td><td>Tourner à droite et avancer d'une case</td><td>Right</td></tr>
- <tr><td>L</td><td>Tourner à gauche et avancer d'une case</td><td>Left</td></tr>
- <tr><td>I</td><td>Se retourner (demi-tour) et avancer d'une case</td><td>Inverse</td></tr>
+ <tr><td>[!java]'R'[/!][!scala|python]"R"[/!]</td><td>Tourner à droite et avancer d'une case</td><td>Right</td></tr>
+ <tr><td>[!java]'L'[/!][!scala|python]"L"[/!]</td><td>Tourner à gauche et avancer d'une case</td><td>Left</td></tr>
+ <tr><td>[!java]'I'[/!][!scala|python]"I"[/!]</td><td>Se retourner (demi-tour) et avancer d'une case</td><td>Inverse</td></tr>
 
- <tr><td>A</td><td>Avancer d'une case</td><td>Première lettre de l'alphabet</td></tr>
- <tr><td>B</td><td>Avancer de deux cases</td><td>Deuxième lettre de l'alphabet</td></tr>
- <tr><td>C</td><td>Avancer de trois cases</td><td>Troisième lettre de l'alphabet</td></tr>
+ <tr><td>[!java]'A'[/!][!scala|python]"A"[/!]</td><td>Avancer d'une case</td><td>Première lettre de l'alphabet</td></tr>
+ <tr><td>[!java]'B'[/!][!scala|python]"B"[/!]</td><td>Avancer de deux cases</td><td>Deuxième lettre de l'alphabet</td></tr>
+ <tr><td>[!java]'C'[/!][!scala|python]"C"[/!]</td><td>Avancer de trois cases</td><td>Troisième lettre de l'alphabet</td></tr>
 
- <tr><td>Z</td><td>Reculer d'une case</td><td>A une lettre de la fin de l'alphabet</td></tr>
- <tr><td>Y</td><td>Reculer de deux cases</td><td>A deux lettres de la fin de l'alphabet</td></tr>
- <tr><td>X</td><td>Reculer de trois cases</td><td>A trois lettres de la fin de l'alphabet</td></tr>
+ <tr><td>[!java]'Z'[/!][!scala|python]"Z"[/!]</td><td>Reculer d'une case</td><td>A une lettre de la fin de l'alphabet</td></tr>
+ <tr><td>[!java]'Y'[/!][!scala|python]"Y"[/!]</td><td>Reculer de deux cases</td><td>A deux lettres de la fin de l'alphabet</td></tr>
+ <tr><td>[!java]'X'[/!][!scala|python]"X"[/!]</td><td>Reculer de trois cases</td><td>A trois lettres de la fin de l'alphabet</td></tr>
  <tr><td><i>(n'importe quoi d'autre)</i></td><td>Arrêter de dancer.</td><td></td></tr>
 </table>
 
diff --git a/src/lessons/welcome/bdr/BDR.html b/src/lessons/welcome/bdr/BDR.html
index cf81d61..17b959c 100644
--- a/src/lessons/welcome/bdr/BDR.html
+++ b/src/lessons/welcome/bdr/BDR.html
@@ -156,17 +156,17 @@ following signification:
      <td>What to do</td>
      <td>Mnemonic</td></tr>
 
- <tr><td>R</td><td>Turn right and move one step forward</td><td>Right</td></tr>
- <tr><td>L</td><td>Turn left and move one step forward</td><td>Left</td></tr>
- <tr><td>I</td><td>Turn back (U-turn) and move one step forward</td><td>Inverse</td></tr>
+ <tr><td>[!java]'R'[/!][!scala|python]"R"[/!]</td><td>Turn right and move one step forward</td><td>Right</td></tr>
+ <tr><td>[!java]'L'[/!][!scala|python]"L"[/!]</td><td>Turn left and move one step forward</td><td>Left</td></tr>
+ <tr><td>[!java]'I'[/!][!scala|python]"I"[/!]</td><td>Turn back (U-turn) and move one step forward</td><td>Inverse</td></tr>
 
- <tr><td>A</td><td>Move one step forward</td><td>First letter of the alphabet</td></tr>
- <tr><td>B</td><td>Move two steps forward</td><td>Second letter of the alphabet</td></tr>
- <tr><td>C</td><td>Move three steps forward</td><td>Third letter of the alphabet</td></tr>
+ <tr><td>[!java]'A'[/!][!scala|python]"A"[/!]</td><td>Move one step forward</td><td>First letter of the alphabet</td></tr>
+ <tr><td>[!java]'B'[/!][!scala|python]"B"[/!]</td><td>Move two steps forward</td><td>Second letter of the alphabet</td></tr>
+ <tr><td>[!java]'C'[/!][!scala|python]"C"[/!]</td><td>Move three steps forward</td><td>Third letter of the alphabet</td></tr>
 
- <tr><td>Z</td><td>Move one step backward</td><td>One letter before the end of the alphabet</td></tr>
- <tr><td>Y</td><td>Move two steps backward</td><td>Two letters before the end of the alphabet</td></tr>
- <tr><td>X</td><td>Move three steps backward</td><td>Three letters before the end of the alphabet</td></tr>
+ <tr><td>[!java]'Z'[/!][!scala|python]"Z"[/!]</td><td>Move one step backward</td><td>One letter before the end of the alphabet</td></tr>
+ <tr><td>[!java]'Y'[/!][!scala|python]"Y"[/!]</td><td>Move two steps backward</td><td>Two letters before the end of the alphabet</td></tr>
+ <tr><td>[!java]'X'[/!][!scala|python]"X"[/!]</td><td>Move three steps backward</td><td>Three letters before the end of the alphabet</td></tr>
  <tr><td><i>(anything else)</i></td><td>Stop dancing.</td><td></td></tr>
 </table>
 
diff --git a/src/lessons/welcome/bdr/BDR2.fr.html b/src/lessons/welcome/bdr/BDR2.fr.html
index 1d27d50..d566d03 100644
--- a/src/lessons/welcome/bdr/BDR2.fr.html
+++ b/src/lessons/welcome/bdr/BDR2.fr.html
@@ -152,23 +152,23 @@ Remarquez qu'il est maintenant possible d'avancer jusqu'à 6 cases à la fois.</
  <tr><td>Indication</td>
      <td>Quoi faire</td></tr>
 
- <tr><td>R</td><td>Tourner à droite et avancer d'une case</td></tr>
- <tr><td>L</td><td>Tourner à gauche et avancer d'une case</td></tr>
- <tr><td>I</td><td>Se retourner (faire demi-tour) et avancer d'une case</td></tr>
-
- <tr><td>A</td><td>Avancer d'une case</td></tr>
- <tr><td>B</td><td>Avancer de deux cases</td></tr>
- <tr><td>C</td><td>Avancer de trois cases</td></tr>
- <tr><td>D</td><td>Avancer de quatre cases</td></tr>
- <tr><td>E</td><td>Avancer de cinq cases</td></tr>
- <tr><td>F</td><td>Avancer de six cases</td></tr>
-
- <tr><td>Z</td><td>Reculer d'une case</td></tr>
- <tr><td>Y</td><td>Reculer de deux cases</td></tr>
- <tr><td>X</td><td>Reculer de trois cases</td></tr>
- <tr><td>W</td><td>Reculer de quatre cases</td></tr>
- <tr><td>V</td><td>Reculer de cinq cases</td></tr>
- <tr><td>U</td><td>Reculer de six cases</td></tr>
+ <tr><td>[!java]'R'[/!][!scala|python]"R"[/!]</td><td>Tourner à droite et avancer d'une case</td></tr>
+ <tr><td>[!java]'L'[/!][!scala|python]"L"[/!]</td><td>Tourner à gauche et avancer d'une case</td></tr>
+ <tr><td>[!java]'I'[/!][!scala|python]"I"[/!]</td><td>Se retourner (faire demi-tour) et avancer d'une case</td></tr>
+
+ <tr><td>[!java]'A'[/!][!scala|python]"A"[/!]</td><td>Avancer d'une case</td></tr>
+ <tr><td>[!java]'B'[/!][!scala|python]"B"[/!]</td><td>Avancer de deux cases</td></tr>
+ <tr><td>[!java]'C'[/!][!scala|python]"C"[/!]</td><td>Avancer de trois cases</td></tr>
+ <tr><td>[!java]'D'[/!][!scala|python]"D"[/!]</td><td>Avancer de quatre cases</td></tr>
+ <tr><td>[!java]'E'[/!][!scala|python]"E"[/!]</td><td>Avancer de cinq cases</td></tr>
+ <tr><td>[!java]'F'[/!][!scala|python]"F"[/!]</td><td>Avancer de six cases</td></tr>
+
+ <tr><td>[!java]'Z'[/!][!scala|python]"Z"[/!]</td><td>Reculer d'une case</td></tr>
+ <tr><td>[!java]'Y'[/!][!scala|python]"Y"[/!]</td><td>Reculer de deux cases</td></tr>
+ <tr><td>[!java]'X'[/!][!scala|python]"X"[/!]</td><td>Reculer de trois cases</td></tr>
+ <tr><td>[!java]'W'[/!][!scala|python]"W"[/!]</td><td>Reculer de quatre cases</td></tr>
+ <tr><td>[!java]'V'[/!][!scala|python]"V"[/!]</td><td>Reculer de cinq cases</td></tr>
+ <tr><td>[!java]'U'[/!][!scala|python]"U"[/!]</td><td>Reculer de six cases</td></tr>
  <tr><td><i>(n'importe quoi d'autre)</i></td><td>Arrêter de dancer.</td></tr>
 
 </table>
diff --git a/src/lessons/welcome/bdr/BDR2.html b/src/lessons/welcome/bdr/BDR2.html
index 7828f73..733e884 100644
--- a/src/lessons/welcome/bdr/BDR2.html
+++ b/src/lessons/welcome/bdr/BDR2.html
@@ -138,23 +138,23 @@ Note that we can now move up to 6 cells in one dance step.</p>
  <tr><td>Message</td>
      <td>What to do</td></tr>
 
- <tr><td>R</td><td>Turn right and move one step forward</td></tr>
- <tr><td>L</td><td>Turn left and move one step forward</td></tr>
- <tr><td>I</td><td>Turn back and move one step forward</td></tr>
-
- <tr><td>A</td><td>Move one step forward</td></tr>
- <tr><td>B</td><td>Move two steps forward</td></tr>
- <tr><td>C</td><td>Move three steps forward</td></tr>
- <tr><td>D</td><td>Move four cells forward</td></tr>
- <tr><td>E</td><td>Move five cells forward</td></tr>
- <tr><td>F</td><td>Move six cells forward</td></tr>
-
- <tr><td>Z</td><td>Move one step backward</td></tr>
- <tr><td>Y</td><td>Move two steps backward</td></tr>
- <tr><td>X</td><td>Move three steps backward</td></tr>
- <tr><td>W</td><td>Move four cells backward</td></tr>
- <tr><td>V</td><td>Move five cells backward</td></tr>
- <tr><td>U</td><td>Move six cells backward</td></tr>
+ <tr><td>[!java]'R'[/!][!scala|python]"R"[/!]</td><td>Turn right and move one step forward</td></tr>
+ <tr><td>[!java]'L'[/!][!scala|python]"L"[/!]</td><td>Turn left and move one step forward</td></tr>
+ <tr><td>[!java]'I'[/!][!scala|python]"I"[/!]</td><td>Turn back and move one step forward</td></tr>
+
+ <tr><td>[!java]'A'[/!][!scala|python]"A"[/!]</td><td>Move one step forward</td></tr>
+ <tr><td>[!java]'B'[/!][!scala|python]"B"[/!]</td><td>Move two steps forward</td></tr>
+ <tr><td>[!java]'C'[/!][!scala|python]"C"[/!]</td><td>Move three steps forward</td></tr>
+ <tr><td>[!java]'D'[/!][!scala|python]"D"[/!]</td><td>Move four cells forward</td></tr>
+ <tr><td>[!java]'E'[/!][!scala|python]"E"[/!]</td><td>Move five cells forward</td></tr>
+ <tr><td>[!java]'F'[/!][!scala|python]"F"[/!]</td><td>Move six cells forward</td></tr>
+
+ <tr><td>[!java]'Z'[/!][!scala|python]"Z"[/!]</td><td>Move one step backward</td></tr>
+ <tr><td>[!java]'Y'[/!][!scala|python]"Y"[/!]</td><td>Move two steps backward</td></tr>
+ <tr><td>[!java]'X'[/!][!scala|python]"X"[/!]</td><td>Move three steps backward</td></tr>
+ <tr><td>[!java]'W'[/!][!scala|python]"W"[/!]</td><td>Move four cells backward</td></tr>
+ <tr><td>[!java]'V'[/!][!scala|python]"V"[/!]</td><td>Move five cells backward</td></tr>
+ <tr><td>[!java]'U'[/!][!scala|python]"U"[/!]</td><td>Move six cells backward</td></tr>
  <tr><td><i>(anything else)</i></td><td>Stop dancing.</td></tr>
 
 </table>
diff --git a/src/lessons/welcome/environment/Environment.fr.html b/src/lessons/welcome/environment/Environment.fr.html
index e0de1bb..063c0c8 100644
--- a/src/lessons/welcome/environment/Environment.fr.html
+++ b/src/lessons/welcome/environment/Environment.fr.html
@@ -29,10 +29,9 @@ Java, Python ou Scala (en fonction de l'exercice).</p>
 les différents éléments composant la fenêtre, et placez la souris sur dessus
 pour voir les bulles d'aide, et essayez les pour voir ce qu'ils font. La
 zone blanche en bas est la console : c'est là que les erreurs et messages
-sont affichés. Si vous avez accès à internet, connectez vous au forum par le
-menu d'aide pour voir si d'autres personnes sont connectés. Notez que quand
-vous réussissez un exercice, la bonne nouvelle est envoyée sur
-twitter. Suivez les progrès de vos amis en suivant jlmlovers :)</p>
+sont affichés.  Notez que quand vous réussissez un exercice, la bonne
+nouvelle est envoyée sur twitter. Suivez les progrès de vos amis en suivant
+ at jlmlovers :)</p>
   
   <p>Si vous préférez ne pas poster vos progrès sur internet, changez simplement
 la propriété correspondante dans votre fichier de configuration, qui est
diff --git a/src/lessons/welcome/environment/Environment.html b/src/lessons/welcome/environment/Environment.html
index d347d75..686107f 100644
--- a/src/lessons/welcome/environment/Environment.html
+++ b/src/lessons/welcome/environment/Environment.html
@@ -27,7 +27,7 @@ if you want, or by clicking on the [!thelang/] icon at the right of the status b
   The white area below is the console: this is where errors and messages get 
   displayed. Note that when you 
   successfully solve an exercise, the good news is spread on twitter.
-  Keep posted to the progress of your friends by following @jlmlovers :)</p>
+  Keep posted about the progress of your friends by following @jlmlovers :)</p>
   
   <p>If you prefer not to post your successes online, just change the relevant 
   properties in your config file, that is [!configfile] in your case.</p>
diff --git a/src/lessons/welcome/instructions/Instructions.fr.html b/src/lessons/welcome/instructions/Instructions.fr.html
index 35da683..9497ecd 100644
--- a/src/lessons/welcome/instructions/Instructions.fr.html
+++ b/src/lessons/welcome/instructions/Instructions.fr.html
@@ -60,8 +60,8 @@ droite()[!java];[/!]
 	 Le bouton <b>marquer</b> est un peu particulier, puisqu'il correspond à deux
 méthodes : la première lève le crayon, tandis que la seconde le baisse.
 <pre>
-leveCrayon()[!java];[/!]
-baisseCrayon()[!java];[/!]
+leveBrosse()[!java];[/!]
+baisseBrosse()[!java];[/!]
 </pre>
   <p>La buggle offre d'autres méthodes, présentées dans le menu "Aide/À propos de
 ce monde". Elles seront introduites au fur et à mesure des besoins.</p>
diff --git a/src/lessons/welcome/loopdowhile/Poucet.fr.html b/src/lessons/welcome/loopdowhile/Poucet.fr.html
index aa60f20..579cae1 100644
--- a/src/lessons/welcome/loopdowhile/Poucet.fr.html
+++ b/src/lessons/welcome/loopdowhile/Poucet.fr.html
@@ -14,7 +14,11 @@ défilant au dessus de l'endroit où est dessiné le monde. C'est là où il est
 écrit au sol. Ces mondes sont composés de plusieurs corridors, avec des
 baggles par terre. À chaque embranchement, il faut prendre à gauche si le
 corridor qu'on vient de parcourir contient 3 baggles ou plus, ou à droite
-s'il contient 2 baggles ou moins.</p>     
+s'il contient 2 baggles ou moins.</p>
+
+<p>Vous devez compter exactement 5 cases par couloir. Les cases aux
+intersections doivent être comptées comme les dernières de leur couloir, pas
+comme les premières après avoir tourné. </p>     
 
 <p>La forme générale de votre code doit donc être quelque chose comme «tant que
 je n'ai pas trouvé la sortie, prendre le prochain couloir pour décider s'il
diff --git a/src/lessons/welcome/loopdowhile/Poucet.html b/src/lessons/welcome/loopdowhile/Poucet.html
index eb4ecfb..83376db 100644
--- a/src/lessons/welcome/loopdowhile/Poucet.html
+++ b/src/lessons/welcome/loopdowhile/Poucet.html
@@ -8,7 +8,10 @@ You can switch to the other world by using the combobox above the world represen
 
 <p>The good news is that the path to the exit is written on the ground. As you can see, the world is made 
 of several corridors, with baggles on the ground. After each corridor, you should turn left if the corridor contains
-three baggels or more, and you have to turn right if there is only 2 baggles or less.</p>     
+three baggels or more, and you have to turn right if there is only 2 baggles or less.</p>
+
+<p>You should count exactly 5 cells per corridor, the one at the intersection counting as the last cell of the 
+previous corridor, not as the first cell after your turn. </p>     
 
 <p>So, the general form of your code must be something like "while I did not find the exit, take the next corridor 
 to decide whether I should turn left or right at the next intersection". You can determine whether you are on the 
diff --git a/src/lessons/welcome/loopfor/LoopFor.java b/src/lessons/welcome/loopfor/LoopFor.java
index dfb27f0..6b7a92a 100644
--- a/src/lessons/welcome/loopfor/LoopFor.java
+++ b/src/lessons/welcome/loopfor/LoopFor.java
@@ -20,7 +20,7 @@ public class LoopFor extends ExerciseTemplated {
 			new Buggle(myWorld, "Hungry"+(i+1), i, 6, Direction.NORTH, Color.black, Color.lightGray);
 		    
 		    try {
-				myWorld.newBaggle(i, 6-i);
+				myWorld.addBaggle(i, 6-i);
 			} catch (AlreadyHaveBaggleException e) {
 				e.printStackTrace();
 			}
diff --git a/src/lessons/welcome/loopfor/LoopStairs.fr.html b/src/lessons/welcome/loopfor/LoopStairs.fr.html
index 2db1430..e921319 100644
--- a/src/lessons/welcome/loopfor/LoopStairs.fr.html
+++ b/src/lessons/welcome/loopfor/LoopStairs.fr.html
@@ -11,6 +11,9 @@ marches.</p>
 
 <p>Avant cela, vous devez marcher un peu pour atteindre l'escalier et vous
 assurer que vous êtes dans la bonne position pour que le contenu de votre
-boucle s'exécute correctement. Et une fois que vous avez atteint le paradis,
-faites quelques pas dans votre nouvelle demeure.</p>
+boucle s'exécute correctement.
+Une fois que vous avez atteint le paradis, faites quelques pas dans votre
+nouvelle demeure.
+Chemin faisant, les couleurs apparaissent d'elles-mêmes sans que vous n'ayez
+rien à faire.</p>
  
\ No newline at end of file
diff --git a/src/lessons/welcome/loopfor/LoopStairs.html b/src/lessons/welcome/loopfor/LoopStairs.html
index cf7a0f5..ef778a8 100644
--- a/src/lessons/welcome/loopfor/LoopStairs.html
+++ b/src/lessons/welcome/loopfor/LoopStairs.html
@@ -7,7 +7,8 @@ It leads directly to heaven, and each time you walk on it, joyful colors spur al
 First devise the four instructions you have to give you buggle to take one stair step, 
 and then put them in a loop to take the whole stair.</p>
 
-<p>And before that, walk a bit forward to reach that stair, and ensure that you are in 
+<p>Before that, walk a bit forward to reach that stair, and ensure that you are in 
 the right situation for your loop content to run properly. And once you reach the heaven, 
-take some steps in your new home.</p>
+take some steps in your new home. 
+Meanwhile, you just have to walk your way, the colors appear automagically.</p>
  
\ No newline at end of file
diff --git a/src/lessons/welcome/loopwhile/BaggleSeeker.java b/src/lessons/welcome/loopwhile/BaggleSeeker.java
index 148dc81..4177b37 100644
--- a/src/lessons/welcome/loopwhile/BaggleSeeker.java
+++ b/src/lessons/welcome/loopwhile/BaggleSeeker.java
@@ -19,7 +19,7 @@ public class BaggleSeeker extends ExerciseTemplated {
 			new Buggle(myWorld, "Cooker "+(i+1), i, 6, Direction.NORTH, Color.black, Color.lightGray);
 
 			try {
-				myWorld.newBaggle(i, 6-i);
+				myWorld.addBaggle(i, 6-i);
 			} catch (AlreadyHaveBaggleException e) {
 				e.printStackTrace();
 			}
diff --git a/src/lessons/welcome/methods/args/MethodsArgs.fr.html b/src/lessons/welcome/methods/args/MethodsArgs.fr.html
index 313a884..18044f5 100644
--- a/src/lessons/welcome/methods/args/MethodsArgs.fr.html
+++ b/src/lessons/welcome/methods/args/MethodsArgs.fr.html
@@ -72,11 +72,10 @@ fonction.</p>
 
 <h3>Objectif de cet exercice</h3>
 <p>Cette fois, vous devez écrire une méthode
-<code>[!java]deplace(int nbPas,boolean versLAvant)[/!]
-[!scala]deplace(nbPas: Int,versLAvant: Boolean)[/!]
-[!python]deplace(nbPas,versLAvant)[/!] </code> qui se déplace de
-<code>nbPas</code> pas. Si <code>versLAvant</code> est vrai, il faut avancer
-de ce nombre de pas; dans le cas contraire, il faut reculer.</p>
+<code>[!java]move(int nbPas,boolean versLAvant)[/!] [!scala]move(nbPas:
+Int,versLAvant: Boolean)[/!] [!python]move(nbPas,versLAvant)[/!] </code> qui
+se déplace de <code>nbPas</code> pas. Si <code>versLAvant</code> est vrai,
+il faut avancer de ce nombre de pas; dans le cas contraire, il faut reculer.</p>
 
 <p>Cette fois, il y a un seul monde, et sept buggles, qui exécutent toutes le
 code que vous allez écrire.
diff --git a/src/lessons/welcome/methods/basics/Methods.java b/src/lessons/welcome/methods/basics/Methods.java
index 603753a..19a2caf 100644
--- a/src/lessons/welcome/methods/basics/Methods.java
+++ b/src/lessons/welcome/methods/basics/Methods.java
@@ -19,7 +19,7 @@ public class Methods extends ExerciseTemplated {
 
 		try {
 			for (int i=0;i<7;i++) 
-				myWorld.newBaggle(i,i);
+				myWorld.addBaggle(i,i);
 		} catch (AlreadyHaveBaggleException e) {
 			e.printStackTrace();
 		}
diff --git a/src/lessons/welcome/methods/flowerpot/FlowerPotEntity.py b/src/lessons/welcome/methods/flowerpot/FlowerPotEntity.py
index 3463086..8d4d28b 100644
--- a/src/lessons/welcome/methods/flowerpot/FlowerPotEntity.py
+++ b/src/lessons/welcome/methods/flowerpot/FlowerPotEntity.py
@@ -13,26 +13,26 @@ def makeFlower(c):
 	right()   
 
 def line(c1, c2):
-	    makeFlower(c1);
-	    forward(3);
-	    makeFlower(c2);
-	    backward(5);    
+    makeFlower(c1)
+    forward(3)
+    makeFlower(c2)
+    backward(5)    
 def halfLine(c):
-	    forward(2);
-	    makeFlower(c);
-	    backward(3);
+    forward(2)
+    makeFlower(c)
+    backward(3)
 	
 def growFlowers():
-	    line(Color.RED, Color.CYAN);
+    line(Color.RED, Color.CYAN)
 	    
-	    right();    
-	    forward(2);
-	    left();
-	    halfLine(Color.ORANGE);
-	    right();
-	    forward(2);
-	    left();
+    right()    
+    forward(2)
+    left()
+    halfLine(Color.ORANGE)
+    right()
+    forward(2)
+    left()
 	    
-	    line(Color.PINK, Color.GREEN);
+    line(Color.PINK, Color.GREEN);
 # END SOLUTION
 growFlowers()
\ No newline at end of file
diff --git a/src/lessons/welcome/methods/picture/PictureMono2Entity.java b/src/lessons/welcome/methods/picture/PictureMono2Entity.java
index 68a303d..8ee20a9 100644
--- a/src/lessons/welcome/methods/picture/PictureMono2Entity.java
+++ b/src/lessons/welcome/methods/picture/PictureMono2Entity.java
@@ -4,7 +4,13 @@ package lessons.welcome.methods.picture;
 public class PictureMono2Entity extends plm.universe.bugglequest.SimpleBuggle {
 
 	/* BEGIN TEMPLATE */
-	/* BEGIN SOLUTION */
+	public void run() {
+		/* BEGIN SOLUTION */
+		for (int i=0; i<3;i++) {
+			makeLine(3);
+			nextLine();
+		}
+	}
 	void mark() {
 		brushDown();
 		brushUp();
@@ -46,14 +52,7 @@ public class PictureMono2Entity extends plm.universe.bugglequest.SimpleBuggle {
 		left();
 		forward(5);
 		right();	
+		/* END SOLUTION */
 	}
-
-	public void run() {
-		for (int i=0; i<3;i++) {
-			makeLine(3);
-			nextLine();
-		}
-	}
-	/* END SOLUTION */
 	/* END TEMPLATE */
 }
diff --git a/src/lessons/welcome/methods/picture/PictureMono2Entity.scala b/src/lessons/welcome/methods/picture/PictureMono2Entity.scala
index ccefab0..5f62cb9 100644
--- a/src/lessons/welcome/methods/picture/PictureMono2Entity.scala
+++ b/src/lessons/welcome/methods/picture/PictureMono2Entity.scala
@@ -4,7 +4,13 @@ package lessons.welcome.methods.picture;
 class ScalaPictureMono2Entity extends plm.universe.bugglequest.SimpleBuggle {
 
 	/* BEGIN TEMPLATE */
-	/* BEGIN SOLUTION */
+	def run() {
+		/* BEGIN SOLUTION */
+		for (i <- 1 to 3) {
+			makeLine(3);
+			nextLine();
+		}
+	}
 	def mark() {
 		brushDown();
 		brushUp();
@@ -45,14 +51,7 @@ class ScalaPictureMono2Entity extends plm.universe.bugglequest.SimpleBuggle {
 		left();
 		forward(5);
 		right();	
+		/* END SOLUTION */
 	}
-
-	override def run() {
-		for (i <- 1 to 3) {
-			makeLine(3);
-			nextLine();
-		}
-	}
-	/* END SOLUTION */
 	/* END TEMPLATE */
 }
diff --git a/src/lessons/welcome/methods/picture/PictureMono3Entity.java b/src/lessons/welcome/methods/picture/PictureMono3Entity.java
index 9761e7a..c47f5b5 100644
--- a/src/lessons/welcome/methods/picture/PictureMono3Entity.java
+++ b/src/lessons/welcome/methods/picture/PictureMono3Entity.java
@@ -5,7 +5,13 @@ import plm.universe.bugglequest.SimpleBuggle;
 public class PictureMono3Entity extends SimpleBuggle {
 
 	/* BEGIN TEMPLATE */
-	/* BEGIN SOLUTION */
+	public void run() {
+		/* BEGIN SOLUTION */
+		for (int i=0; i<9; i++) {
+			makeLine(9);
+			nextLine();
+		}
+	}
 	void mark() {
 		brushDown();
 		brushUp();
@@ -47,14 +53,7 @@ public class PictureMono3Entity extends SimpleBuggle {
 		left();
 		forward(5);
 		right();	
+		/* END SOLUTION */
 	}
-
-	public void run() {
-		for (int i=0; i<9; i++) {
-			makeLine(9);
-			nextLine();
-		}
-	}
-	/* END SOLUTION */
 	/* END TEMPLATE */
 }
diff --git a/src/lessons/welcome/methods/picture/PictureMono3Entity.scala b/src/lessons/welcome/methods/picture/PictureMono3Entity.scala
index a15eec7..4609c96 100644
--- a/src/lessons/welcome/methods/picture/PictureMono3Entity.scala
+++ b/src/lessons/welcome/methods/picture/PictureMono3Entity.scala
@@ -5,7 +5,13 @@ import plm.universe.bugglequest.SimpleBuggle;
 class ScalaPictureMono3Entity extends SimpleBuggle {
 
 	/* BEGIN TEMPLATE */
-	/* BEGIN SOLUTION */
+	def run() {
+		/* BEGIN SOLUTION */
+		for (i <- 1 to 9) {
+			makeLine(9);
+			nextLine();
+		}
+	}
 	def mark() {
 		brushDown();
 		brushUp();
@@ -47,14 +53,7 @@ class ScalaPictureMono3Entity extends SimpleBuggle {
 		left();
 		forward(5);
 		right();	
+		/* END SOLUTION */
 	}
-
-	def run() {
-		for (i <- 1 to 9) {
-			makeLine(9);
-			nextLine();
-		}
-	}
-	/* END SOLUTION */
 	/* END TEMPLATE */
 }
diff --git a/src/lessons/welcome/methods/picture/PictureMonoEntity.java b/src/lessons/welcome/methods/picture/PictureMonoEntity.java
index 1da824e..4ad9edd 100644
--- a/src/lessons/welcome/methods/picture/PictureMonoEntity.java
+++ b/src/lessons/welcome/methods/picture/PictureMonoEntity.java
@@ -3,7 +3,14 @@ package lessons.welcome.methods.picture;
 import plm.universe.bugglequest.SimpleBuggle;
 public class PictureMonoEntity extends SimpleBuggle {
 
-	/* BEGIN SOLUTION */
+	/* BEGIN TEMPLATE */
+	public void run() {
+		/* BEGIN SOLUTION */
+		makeV();
+		makeV();
+		makeV();
+		makeV();
+	}
 	void mark() {
 		brushDown();
 		brushUp();
@@ -25,15 +32,7 @@ public class PictureMonoEntity extends SimpleBuggle {
 
 		forward();
 		left();
+		/* END SOLUTION */
 	}
-
-
-
-	public void run() {
-		makeV();
-		makeV();
-		makeV();
-		makeV();
-	}
-	/* END SOLUTION */
+	/* END TEMPLATE */
 }
diff --git a/src/lessons/welcome/methods/picture/PictureMonoEntity.scala b/src/lessons/welcome/methods/picture/PictureMonoEntity.scala
index e753f96..f5890f7 100644
--- a/src/lessons/welcome/methods/picture/PictureMonoEntity.scala
+++ b/src/lessons/welcome/methods/picture/PictureMonoEntity.scala
@@ -6,7 +6,12 @@ import plm.universe.bugglequest.SimpleBuggle;
 class ScalaPictureMonoEntity extends SimpleBuggle {
 
 	/* BEGIN TEMPLATE */
-	/* BEGIN SOLUTION */
+	def run() {
+		/* BEGIN SOLUTION */
+		for (i <- 1 to 4) {
+			makeV();
+		}
+	}
 	def mark() {
 		brushDown();
 		brushUp();
@@ -28,15 +33,7 @@ class ScalaPictureMonoEntity extends SimpleBuggle {
 
 		forward();
 		left();
+		/* END SOLUTION */
 	}
-
-
-
-	override def run() {
-		for (i <- 1 to 4) {
-			makeV();
-		}
-	}
-	/* END SOLUTION */
 	/* END TEMPLATE */
 }
diff --git a/src/lessons/welcome/methods/returning/MethodsReturning.java b/src/lessons/welcome/methods/returning/MethodsReturning.java
index 969eedf..370a4d1 100644
--- a/src/lessons/welcome/methods/returning/MethodsReturning.java
+++ b/src/lessons/welcome/methods/returning/MethodsReturning.java
@@ -22,9 +22,9 @@ public class MethodsReturning extends ExerciseTemplated {
 		}
 
 		try {
-			myWorld[0].newBaggle(3, 2);
-			myWorld[1].newBaggle(5, 1);
-			myWorld[2].newBaggle(2, 6);
+			myWorld[0].addBaggle(3, 2);
+			myWorld[1].addBaggle(5, 1);
+			myWorld[2].addBaggle(2, 6);
 		} catch (AlreadyHaveBaggleException e) {
 			e.printStackTrace();
 		}
diff --git a/src/lessons/welcome/methods/slug/SlugHunting.java b/src/lessons/welcome/methods/slug/SlugHunting.java
index ab32b4d..da6b481 100644
--- a/src/lessons/welcome/methods/slug/SlugHunting.java
+++ b/src/lessons/welcome/methods/slug/SlugHunting.java
@@ -28,7 +28,7 @@ public class SlugHunting extends ExerciseTemplated {
 		myWorld.setColor(1, 1,Color.green);
 		myWorld.setColor(0, 1,Color.green);
 		try {
-			myWorld.newBaggle(0, 1);
+			myWorld.addBaggle(0, 1);
 		} catch (AlreadyHaveBaggleException e) {
 			e.printStackTrace();
 		}
@@ -53,7 +53,7 @@ public class SlugHunting extends ExerciseTemplated {
 		myWorld.setColor(4, 4,Color.green);
 
 		try {
-			myWorld.newBaggle(3, 4);
+			myWorld.addBaggle(3, 4);
 		} catch (AlreadyHaveBaggleException e) {
 			e.printStackTrace();
 		}
diff --git a/src/lessons/welcome/methods/slug/SlugSnail.java b/src/lessons/welcome/methods/slug/SlugSnail.java
index 3a3df9f..e4b4bd5 100644
--- a/src/lessons/welcome/methods/slug/SlugSnail.java
+++ b/src/lessons/welcome/methods/slug/SlugSnail.java
@@ -30,7 +30,7 @@ public class SlugSnail extends ExerciseTemplated {
 		myWorld.setParameter(new Object[] {Color.pink});
 		
 		try {
-			myWorld.newBaggle(0, 1);
+			myWorld.addBaggle(0, 1);
 		} catch (AlreadyHaveBaggleException e) {
 			e.printStackTrace();
 		}
@@ -56,7 +56,7 @@ public class SlugSnail extends ExerciseTemplated {
 		myWorld.setParameter(new Object[] {Color.orange});
 
 		try {
-			myWorld.newBaggle(3, 4);
+			myWorld.addBaggle(3, 4);
 		} catch (AlreadyHaveBaggleException e) {
 			e.printStackTrace();
 		}
diff --git a/src/lessons/welcome/methods/slug/SlugTracking.fr.html b/src/lessons/welcome/methods/slug/SlugTracking.fr.html
index 3450660..d551f75 100644
--- a/src/lessons/welcome/methods/slug/SlugTracking.fr.html
+++ b/src/lessons/welcome/methods/slug/SlugTracking.fr.html
@@ -21,7 +21,10 @@ la couleur retournée est le vert, mais vous devez plutôt écrire quelque
 chose comme <code>getCouleurSol().equals(Color.green)</code>. C'est parce
 que les couleurs sont des <i>objets</i> en Java, et que
 <code>.equals()</code> est la marche à suivre pour tester l'égalité d'objets
-Java.[/!]</p>   
+Java.[/!]
+[!python|scala]Il suffit ensuite de tester si la couleur renvoyée par cette
+fonction est égale à la valeur <code>Color.green</code>, qui représente a
+couleur verte.[/!]</p>   
 
 <h3>Objectif de cet exercice</h3>
 <p>Complétez la méthode <code>isFacingTrail()</code> qui sera appelée
diff --git a/src/lessons/welcome/methods/slug/SlugTracking.html b/src/lessons/welcome/methods/slug/SlugTracking.html
index f94b9bb..5bb834c 100644
--- a/src/lessons/welcome/methods/slug/SlugTracking.html
+++ b/src/lessons/welcome/methods/slug/SlugTracking.html
@@ -14,7 +14,10 @@ the current cell. Just go to the cell you want to test and run that function.
 [!java]You cannot test whether this color is equal to <code>Color.green</code> with an
 <code>==</code> sign but instead you have to write something like
 <code>getGroundColor().equals(Color.green)</code>. This is because green is an 
-<i>object</i> in Java, and <code>.equals()</code> is the way to go to test equality between Java objects.[/!]</p>   
+<i>object</i> in Java, and <code>.equals()</code> is the way to go to test equality between Java objects.[/!]
+[!python|scala]So you just have to test whether the returned color is
+equal to the value <code>Color.green</code>, that represents the 
+green color.[/!]</p>   
 
 <h3>Exercise goal</h3>
 <p>Complete the <code>isFacingTrail()</code> method (which gets called automatically).</p>
diff --git a/src/lessons/welcome/methods/slug/SlugTracking.java b/src/lessons/welcome/methods/slug/SlugTracking.java
index 323e4a2..bc8ecb7 100644
--- a/src/lessons/welcome/methods/slug/SlugTracking.java
+++ b/src/lessons/welcome/methods/slug/SlugTracking.java
@@ -28,7 +28,7 @@ public class SlugTracking extends ExerciseTemplated {
 		myWorld.setColor(1, 1,Color.green);
 		myWorld.setColor(0, 1,Color.green);
 		try {
-			myWorld.newBaggle(0, 1);
+			myWorld.addBaggle(0, 1);
 		} catch (AlreadyHaveBaggleException e) {
 			e.printStackTrace();
 		}
@@ -53,7 +53,7 @@ public class SlugTracking extends ExerciseTemplated {
 		myWorld.setColor(4, 4,Color.green);
 
 		try {
-			myWorld.newBaggle(3, 4);
+			myWorld.addBaggle(3, 4);
 		} catch (AlreadyHaveBaggleException e) {
 			e.printStackTrace();
 		}
diff --git a/src/lessons/welcome/methods/slug/SlugTrackingEntity.java b/src/lessons/welcome/methods/slug/SlugTrackingEntity.java
index 4cf1335..86e6d10 100644
--- a/src/lessons/welcome/methods/slug/SlugTrackingEntity.java
+++ b/src/lessons/welcome/methods/slug/SlugTrackingEntity.java
@@ -7,10 +7,6 @@ public class SlugTrackingEntity extends plm.universe.bugglequest.SimpleBuggle {
 
 	@Override
 	public void run() {
-		hunt(); 
-	}
-
-	public void hunt() {
 		while (! isOverBaggle()) {
 			if (isFacingTrail()) {
 				brushDown();
@@ -36,5 +32,4 @@ public class SlugTrackingEntity extends plm.universe.bugglequest.SimpleBuggle {
 		/* END SOLUTION */
 	}		
 	/* END TEMPLATE */
-
 }
diff --git a/src/lessons/welcome/methods/slug/SlugTrackingEntity.scala b/src/lessons/welcome/methods/slug/SlugTrackingEntity.scala
index 3f3d1c3..9aa24d0 100644
--- a/src/lessons/welcome/methods/slug/SlugTrackingEntity.scala
+++ b/src/lessons/welcome/methods/slug/SlugTrackingEntity.scala
@@ -6,10 +6,6 @@ import java.awt.Color;
 class ScalaSlugTrackingEntity extends plm.universe.bugglequest.SimpleBuggle {
 
 	override def run() {
-		hunt(); 
-	}
-
-	def hunt() {
 		while (! isOverBaggle()) {
 			if (isFacingTrail()) {
 				brushDown();
diff --git a/src/lessons/welcome/variables/Variables.java b/src/lessons/welcome/variables/Variables.java
index 3edd5ac..7cd97b5 100644
--- a/src/lessons/welcome/variables/Variables.java
+++ b/src/lessons/welcome/variables/Variables.java
@@ -19,7 +19,7 @@ public class Variables extends ExerciseTemplated {
 			new Buggle(myWorld, "Cooker "+(i+1), i, 6, Direction.NORTH, Color.black, Color.lightGray);
 
 			try {
-				myWorld.newBaggle(i, 6-i);
+				myWorld.addBaggle(i, 6-i);
 			} catch (AlreadyHaveBaggleException e) {
 				e.printStackTrace();
 			}
diff --git a/src/plm/core/model/Game.java b/src/plm/core/model/Game.java
index 758e238..6147d8c 100644
--- a/src/plm/core/model/Game.java
+++ b/src/plm/core/model/Game.java
@@ -991,7 +991,15 @@ public class Game implements IWorldView {
 		return doDebug;
 	}
 
-    /*
+	private boolean doCreative = false;		
+	public void switchCreative() {
+		doCreative =  !doCreative;
+	}
+	public boolean isCreativeEnabled() {
+		return doCreative;
+	}
+
+	/*
      * Getter and Setter for the course ID for the current session.
      * This ID will be used by the ServerSpy, to associate this
      * PLM student with a course started by a teacher on the server
diff --git a/src/plm/core/model/LessonRunner.java b/src/plm/core/model/LessonRunner.java
index cc7ace5..846a3c4 100644
--- a/src/plm/core/model/LessonRunner.java
+++ b/src/plm/core/model/LessonRunner.java
@@ -55,7 +55,8 @@ public class LessonRunner extends Thread {
 			game.setState(Game.GameState.COMPILATION_ENDED);
 			
 			game.setState(Game.GameState.EXECUTION_STARTED);
-			exo.reset();
+			if (!game.isCreativeEnabled())
+				exo.reset();
 			
 			exo.run(runners);
 			while (runners.size()>0) {
@@ -63,7 +64,8 @@ public class LessonRunner extends Thread {
 				t.join();
 			}
 			
-			exo.check();
+			if (!game.isCreativeEnabled())
+				exo.check();
 			game.setState(Game.GameState.EXECUTION_ENDED);
 
 		} catch (InterruptedException e) {
@@ -80,55 +82,56 @@ public class LessonRunner extends Thread {
 			game.setState(Game.GameState.EXECUTION_ENDED);
 		}
 		
-		if (   exo.lastResult.totalTests > 0 
-			&& exo.lastResult.totalTests == exo.lastResult.passedTests) {
-			Game.getInstance().studentWork.setPassed(exo, null, true);
-			
-			Vector<Lecture> nextExercises =  exo.getDependingLectures();	
-			if ( nextExercises.size() == 0) {
-				if (exo.lastResult.passedTests > 1) {
-					JOptionPane.showMessageDialog(null, 
-							i18n.tr("Congratulations, you passed this exercise.\n{0} tests passed.",
-									exo.lastResult.passedTests) + exo.lastResult.details, 
-									i18n.tr("Exercice passed \\o/"), 
-									JOptionPane.PLAIN_MESSAGE, ResourcesCache.getIcon("img/trophy.png"));
+		if (!game.isCreativeEnabled()) {
+			if (   exo.lastResult.totalTests > 0 
+				&& exo.lastResult.totalTests == exo.lastResult.passedTests) {
+				Game.getInstance().studentWork.setPassed(exo, null, true);
+
+				Vector<Lecture> nextExercises =  exo.getDependingLectures();	
+				if ( nextExercises.size() == 0) {
+					if (exo.lastResult.passedTests > 1) {
+						JOptionPane.showMessageDialog(null, 
+								i18n.tr("Congratulations, you passed this exercise.\n{0} tests passed.",
+										exo.lastResult.passedTests) + exo.lastResult.details, 
+										i18n.tr("Exercice passed \\o/"), 
+										JOptionPane.PLAIN_MESSAGE, ResourcesCache.getIcon("img/trophy.png"));
+					} else {
+						JOptionPane.showMessageDialog(null, 
+								i18n.tr("Congratulations, you passed this exercise.",
+										exo.lastResult.passedTests) + exo.lastResult.details, 
+										i18n.tr("Exercice passed \\o/"), 
+										JOptionPane.PLAIN_MESSAGE, ResourcesCache.getIcon("img/trophy.png"));
+					}
 				} else {
-					JOptionPane.showMessageDialog(null, 
-							i18n.tr("Congratulations, you passed this exercise.",
-									exo.lastResult.passedTests) + exo.lastResult.details, 
-									i18n.tr("Exercice passed \\o/"), 
-									JOptionPane.PLAIN_MESSAGE, ResourcesCache.getIcon("img/trophy.png"));
+					Lecture selectedValue;
+					if (exo.lastResult.passedTests > 1) {
+
+						selectedValue = (Lecture) JOptionPane.showInputDialog(null, 
+								i18n.tr("Congratulations, you passed this exercise.\n({0} tests passed)\nWhich exercise will you do now?"), 
+								i18n.tr("Exercice passed \\o/"),
+								JOptionPane.PLAIN_MESSAGE, ResourcesCache.getIcon("img/trophy.png"),
+								nextExercises.toArray(), nextExercises.get(0));
+					} else {
+						selectedValue = (Lecture) JOptionPane.showInputDialog(null, 
+								i18n.tr("Congratulations, you passed this exercise.\nWhich exercise will you do now?"), 
+								i18n.tr("Exercice passed \\o/"),
+								JOptionPane.PLAIN_MESSAGE, ResourcesCache.getIcon("img/trophy.png"),
+								nextExercises.toArray(), nextExercises.get(0));
+
+					}
+					if (selectedValue != null) 
+						Game.getInstance().setCurrentExercise(selectedValue);
 				}
 			} else {
-				Lecture selectedValue;
-				if (exo.lastResult.passedTests > 1) {
+				SwingUtilities.invokeLater(new Runnable() {
+					public void run() {
+						new ExerciseFailedDialog(exo.lastResult);
+					}
+				});
 
-					selectedValue = (Lecture) JOptionPane.showInputDialog(null, 
-							i18n.tr("Congratulations, you passed this exercise.\n({0} tests passed)\nWhich exercise will you do now?"), 
-							i18n.tr("Exercice passed \\o/"),
-							JOptionPane.PLAIN_MESSAGE, ResourcesCache.getIcon("img/trophy.png"),
-							nextExercises.toArray(), nextExercises.get(0));
-				} else {
-					selectedValue = (Lecture) JOptionPane.showInputDialog(null, 
-							i18n.tr("Congratulations, you passed this exercise.\nWhich exercise will you do now?"), 
-							i18n.tr("Exercice passed \\o/"),
-							JOptionPane.PLAIN_MESSAGE, ResourcesCache.getIcon("img/trophy.png"),
-							nextExercises.toArray(), nextExercises.get(0));
-					
-				}
-				if (selectedValue != null) 
-					Game.getInstance().setCurrentExercise(selectedValue);
 			}
-		} else {
-			 SwingUtilities.invokeLater(new Runnable() {
-		            public void run() {
-		            	new ExerciseFailedDialog(exo.lastResult);
-		            }
-		        });
-
+			Game.getInstance().fireProgressSpy(exo);									
 		}
-		Game.getInstance().fireProgressSpy(exo);									
-
 		runners.remove(this);
 	}
 	
diff --git a/src/plm/core/model/lesson/Exercise.java b/src/plm/core/model/lesson/Exercise.java
index aefc8b0..16d2d9c 100644
--- a/src/plm/core/model/lesson/Exercise.java
+++ b/src/plm/core/model/lesson/Exercise.java
@@ -110,7 +110,7 @@ public abstract class Exercise extends Lecture {
 	//TODO: why do we instantiate a compiler per exercise ? is there any way to re-use the same compiler. 
 	//TODO: I tried to put it as static, but of course strange behaviors happen afterwards
 	// Create a compiler of classes (using java 1.6)
-	private final CompilerJava compiler = new CompilerJava(Arrays.asList(new String[] { "-target", "1.6" }));
+	private final CompilerJava compiler = new CompilerJava(Arrays.asList(new String[] { }));
 
 
 	/**
diff --git a/src/plm/core/model/lesson/ExerciseTemplatingEntity.java b/src/plm/core/model/lesson/ExerciseTemplatingEntity.java
index 397a0e5..357034a 100644
--- a/src/plm/core/model/lesson/ExerciseTemplatingEntity.java
+++ b/src/plm/core/model/lesson/ExerciseTemplatingEntity.java
@@ -81,7 +81,7 @@ public abstract class ExerciseTemplatingEntity extends ExerciseTemplated {
 		SourceFile javaFile = sourceFiles.get(Game.JAVA).get(0);
 		
 		javaFile.setCorrection("$package "+template+" public void run(BatTest t) {\n"+javaFile.getTemplate()+"}\n"+javaFile.getCorrection()+" }");
-		javaFile.setTemplate("$package "+template+" "+javaFile.getTemplate()+" $body }");
+		javaFile.setTemplate  ("$package "+template+" public void run(BatTest t) {  "+javaFile.getTemplate()+"}    $body }");
 		//System.out.println("New template: "+sf.getTemplate());
 		
 		if (getProgLanguages().contains(Game.SCALA)) {
@@ -92,7 +92,7 @@ public abstract class ExerciseTemplatingEntity extends ExerciseTemplated {
 					+ "class "+entName+" extends BatEntity { ";
 			
 			scalaFile.setCorrection(header+scalaFile.getCorrection()+" }");
-			scalaFile.setTemplate(header+" "+javaFile.getTemplate()+" $body }");
+			scalaFile.setTemplate  (header+scalaFile.getTemplate()  +" }");
 		}
 		
 		computeAnswer();
@@ -130,7 +130,8 @@ public abstract class ExerciseTemplatingEntity extends ExerciseTemplated {
 		}
 		skeleton.append(") )");
 		
-		newSource(Game.SCALA, entName, initialCode, "$body",7,"\n   override def run(t: BatTest) {\n"+skeleton+"\n   }\n"+initialCode+correction);
+		newSource(Game.SCALA, entName, initialCode, "\n   override def run(t: BatTest) {\n"+skeleton+"\n   }\n$body",7,
+				                                    "\n   override def run(t: BatTest) {\n"+skeleton+"\n   }\n"+initialCode+correction);
 		addProgLanguage(Game.SCALA);
 	}
 }
diff --git a/src/plm/core/ui/ExerciseView.java b/src/plm/core/ui/ExerciseView.java
index c451ff1..66cdc23 100644
--- a/src/plm/core/ui/ExerciseView.java
+++ b/src/plm/core/ui/ExerciseView.java
@@ -3,6 +3,7 @@ package plm.core.ui;
 import java.awt.AWTKeyStroke;
 import java.awt.KeyboardFocusManager;
 import java.util.HashSet;
+import java.util.Locale;
 import java.util.Set;
 
 import javax.swing.BoundedRangeModel;
@@ -24,6 +25,7 @@ import org.xnap.commons.i18n.I18n;
 import org.xnap.commons.i18n.I18nFactory;
 
 import plm.core.GameListener;
+import plm.core.HumanLangChangesListener;
 import plm.core.model.Game;
 import plm.core.model.lesson.Exercise;
 import plm.core.model.lesson.Lecture;
@@ -32,7 +34,7 @@ import plm.universe.EntityControlPanel;
 import plm.universe.World;
 
 
-public class ExerciseView extends JPanel implements GameListener {
+public class ExerciseView extends JPanel implements GameListener, HumanLangChangesListener {
 
 	private static final long serialVersionUID = 6649968807663790018L;
 	private Game game;
@@ -53,6 +55,7 @@ public class ExerciseView extends JPanel implements GameListener {
 		this.game = game;
 		this.game.addGameListener(this);
 		initComponents();
+		Game.getInstance().addHumanLangListener(this);
 		currentExerciseHasChanged(Game.getInstance().getCurrentLesson().getCurrentExercise());
 	}
 
@@ -71,7 +74,6 @@ public class ExerciseView extends JPanel implements GameListener {
 		worldComboBox = new JComboBox(new WorldComboListAdapter(Game.getInstance()));
 		worldComboBox.setRenderer(new WorldCellRenderer());
 		worldComboBox.setEditable(false);
-		worldComboBox.setToolTipText(i18n.tr("Switch the displayed world"));
 		upperPane.add(worldComboBox, "growx");
 
 		// TODO: logarithmic slider ?
@@ -81,20 +83,17 @@ public class ExerciseView extends JPanel implements GameListener {
 		speedSlider.setMinorTickSpacing(10);
 		speedSlider.setPaintTicks(true);
 		speedSlider.setPaintLabels(true);
-		speedSlider.setToolTipText(i18n.tr("Change the speed of execution"));
 		upperPane.add(speedSlider, "growx");
 
 		tabPane = new JTabbedPane();
 		removeControlPage(tabPane);
 		if (Game.getInstance().getSelectedWorld() != null) {
 			worldView = Game.getInstance().getSelectedWorld().getView();
-			tabPane.addTab(i18n.tr("World")+worldView.getTabName(), null, worldView, 
-					i18n.tr("Current world")+worldView.getTip());
+			tabPane.addTab(i18n.tr("World"), null, worldView, i18n.tr("The world as it is right now"));
 		}
 		if (Game.getInstance().getAnswerOfSelectedWorld() != null) {
 			objectivesView = Game.getInstance().getAnswerOfSelectedWorld().getView();
-			tabPane.addTab(i18n.tr("Objective")+objectivesView.getTabName(), null, objectivesView, 
-					i18n.tr("Target world")+objectivesView.getTip());
+			tabPane.addTab(i18n.tr("Objective"), null, objectivesView, i18n.tr("The world as it should be"));
 		}
 		
 		upperPane.add(tabPane, "grow 100 100,push");
@@ -102,7 +101,6 @@ public class ExerciseView extends JPanel implements GameListener {
 		entityComboBox = new JComboBox(new EntityComboListAdapter(Game.getInstance()));
 		entityComboBox.setRenderer(new EntityCellRenderer());
 		entityComboBox.setEditable(false);
-		entityComboBox.setToolTipText(i18n.tr("Switch the entity"));
 		upperPane.add(entityComboBox, "alignx center");
 
 		/*
@@ -159,12 +157,10 @@ public class ExerciseView extends JPanel implements GameListener {
 			objectivesView.setWorld(this.game.getAnswerOfSelectedWorld());
 		} else {
 			tabPane.removeAll();
-			worldView = Game.getInstance().getSelectedWorld().getView();
-			tabPane.addTab(i18n.tr("World")+worldView.getTabName(), null, worldView, 
-					i18n.tr("Current world")+worldView.getTip());
+			worldView = Game.getInstance().getSelectedWorld().getView();			
+			tabPane.addTab(i18n.tr("World"), null, worldView, i18n.tr("The world as it is right now"));
 			objectivesView = Game.getInstance().getAnswerOfSelectedWorld().getView();
-			tabPane.addTab(i18n.tr("Objective")+objectivesView.getTabName(), null, objectivesView, 
-					i18n.tr("Target world")+objectivesView.getTip());
+			tabPane.addTab(i18n.tr("Objective"), null, objectivesView, i18n.tr("The world as it should be"));
 		}
 		// To refresh the controlPane in any case ( else the SortingWorldPanel is not refreshed )
 		controlPane.removeAll();
@@ -211,7 +207,19 @@ public class ExerciseView extends JPanel implements GameListener {
 	public JTabbedPane getTabPane() {
 		return tabPane;
 	}
-	 
+
+	@Override
+	public void currentHumanLanguageHasChanged(Locale newLang) {
+		i18n.setLocale(newLang);
+
+		worldComboBox.setToolTipText(i18n.tr("Switch the displayed world"));
+		speedSlider.setToolTipText(i18n.tr("Change the speed of execution"));
+		entityComboBox.setToolTipText(i18n.tr("Switch the entity"));		
+		tabPane.setTitleAt(0, i18n.tr("World"));
+		tabPane.setToolTipTextAt(0, i18n.tr("The world as it is right now"));
+		tabPane.setTitleAt(1, i18n.tr("Objective"));
+		tabPane.setToolTipTextAt(0, i18n.tr("The world as it should be"));
+	}
 }
 
 class DelayBoundedRangeModel implements BoundedRangeModel, GameListener {
diff --git a/src/plm/core/ui/MainFrame.java b/src/plm/core/ui/MainFrame.java
index c739142..2262256 100644
--- a/src/plm/core/ui/MainFrame.java
+++ b/src/plm/core/ui/MainFrame.java
@@ -75,7 +75,7 @@ public class MainFrame extends JFrame implements GameStateListener, GameListener
     private JMenu menuFile;
     private JMenuItem miFileLoad,miFileSwitch,miFileExercise,miFileConsole=null,miFileCourse,miFileQuit;
     private JMenu menuSession;
-    private JMenuItem miSessionRevert, miSessionExport, miSessionImport, miSessionDebug;
+    private JMenuItem miSessionRevert, miSessionExport, miSessionImport, miSessionDebug, miSessionCreative;
 
     private JMenu menuLanguage, menuLangHuman, menuLangProg;
     private JMenu menuHelp;
@@ -273,6 +273,17 @@ public class MainFrame extends JFrame implements GameStateListener, GameListener
 		});
 		menuSession.add(miSessionDebug);
 
+		miSessionCreative = new JCheckBoxMenuItem(new AbstractGameAction(g, i18n.tr("Creative mode"), null, KeyEvent.VK_C) {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				game.switchCreative();
+
+			}
+		});
+		menuSession.add(miSessionCreative);
+
 
 		/* === Language menu === */
 		menuLanguage = new JMenu(i18n.tr("Language"));
@@ -659,6 +670,7 @@ public class MainFrame extends JFrame implements GameStateListener, GameListener
 		miSessionExport.setText(i18n.tr("Export Session Cache"));
 		miSessionImport.setText(i18n.tr("Import Session Cache"));
 		miSessionDebug.setText(i18n.tr("Debug mode"));
+		miSessionDebug.setText(i18n.tr("Creative mode"));
 
 		
 		menuLanguage.setText(i18n.tr("Language"));
diff --git a/src/plm/core/ui/WorldView.java b/src/plm/core/ui/WorldView.java
index 2bd2b38..b540d25 100644
--- a/src/plm/core/ui/WorldView.java
+++ b/src/plm/core/ui/WorldView.java
@@ -48,14 +48,4 @@ public abstract class WorldView extends JComponent  implements IWorldView {
 	public boolean isWorldCompatible(World world) {
 		return world.getClass().equals(this.world.getClass());
 	}
-
-	/** Returns what should be added to the tab name */
-	public String getTabName() {
-		return ""; 
-	}
-
-	/** Returns what should be added to the tooltip */
-	public String getTip() {
-		return "";
-	}
 }
diff --git a/src/plm/universe/bugglequest/mapeditor/EditionListener.java b/src/plm/core/ui/editor/buggleeditor/EditionListener.java
similarity index 93%
rename from src/plm/universe/bugglequest/mapeditor/EditionListener.java
rename to src/plm/core/ui/editor/buggleeditor/EditionListener.java
index 026e794..55c72ea 100644
--- a/src/plm/universe/bugglequest/mapeditor/EditionListener.java
+++ b/src/plm/core/ui/editor/buggleeditor/EditionListener.java
@@ -1,4 +1,4 @@
-package plm.universe.bugglequest.mapeditor;
+package plm.core.ui.editor.buggleeditor;
 
 import plm.universe.Entity;
 import plm.universe.World;
diff --git a/src/plm/universe/bugglequest/mapeditor/Editor.java b/src/plm/core/ui/editor/buggleeditor/Editor.java
similarity index 98%
rename from src/plm/universe/bugglequest/mapeditor/Editor.java
rename to src/plm/core/ui/editor/buggleeditor/Editor.java
index b310448..2d8c460 100644
--- a/src/plm/universe/bugglequest/mapeditor/Editor.java
+++ b/src/plm/core/ui/editor/buggleeditor/Editor.java
@@ -1,4 +1,4 @@
-package plm.universe.bugglequest.mapeditor;
+package plm.core.ui.editor.buggleeditor;
 
 import java.awt.Color;
 import java.io.File;
diff --git a/src/plm/universe/bugglequest/mapeditor/MainFrame.java b/src/plm/core/ui/editor/buggleeditor/MainFrame.java
similarity index 99%
rename from src/plm/universe/bugglequest/mapeditor/MainFrame.java
rename to src/plm/core/ui/editor/buggleeditor/MainFrame.java
index c68008d..f6f5042 100644
--- a/src/plm/universe/bugglequest/mapeditor/MainFrame.java
+++ b/src/plm/core/ui/editor/buggleeditor/MainFrame.java
@@ -1,4 +1,4 @@
-package plm.universe.bugglequest.mapeditor;
+package plm.core.ui.editor.buggleeditor;
 
 import java.awt.BorderLayout;
 import java.awt.Color;
diff --git a/src/plm/universe/bugglequest/mapeditor/MapEditorApp.java b/src/plm/core/ui/editor/buggleeditor/MapEditorApp.java
similarity index 81%
rename from src/plm/universe/bugglequest/mapeditor/MapEditorApp.java
rename to src/plm/core/ui/editor/buggleeditor/MapEditorApp.java
index 3eccc62..ccd6162 100644
--- a/src/plm/universe/bugglequest/mapeditor/MapEditorApp.java
+++ b/src/plm/core/ui/editor/buggleeditor/MapEditorApp.java
@@ -1,4 +1,4 @@
-package plm.universe.bugglequest.mapeditor;
+package plm.core.ui.editor.buggleeditor;
 
 import java.io.IOException;
 
diff --git a/src/plm/universe/bugglequest/mapeditor/MapView.java b/src/plm/core/ui/editor/buggleeditor/MapView.java
similarity index 97%
rename from src/plm/universe/bugglequest/mapeditor/MapView.java
rename to src/plm/core/ui/editor/buggleeditor/MapView.java
index c32d3b1..fc66631 100644
--- a/src/plm/universe/bugglequest/mapeditor/MapView.java
+++ b/src/plm/core/ui/editor/buggleeditor/MapView.java
@@ -1,4 +1,4 @@
-package plm.universe.bugglequest.mapeditor;
+package plm.core.ui.editor.buggleeditor;
 
 import java.awt.Color;
 import java.awt.Graphics;
@@ -51,10 +51,10 @@ public class MapView extends BuggleWorldView implements EditionListener {
 						cell.putLeftWall();
 				} else if (cmd.equals("baggle")) {
 					if (cell.hasBaggle()) 
-						cell.pickupBaggle();
+						cell.baggleRemove();
 					else
 						try {
-							cell.newBaggle();
+							cell.baggleAdd();
 						} catch (AlreadyHaveBaggleException e1) {
 							System.out.println("The impossible did happen (yet again)");
 							e1.printStackTrace();
diff --git a/src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java b/src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java
similarity index 98%
rename from src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java
rename to src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java
index 37e9509..ee729ba 100644
--- a/src/plm/universe/bugglequest/mapeditor/PropertiesEditor.java
+++ b/src/plm/core/ui/editor/buggleeditor/PropertiesEditor.java
@@ -1,4 +1,4 @@
-package plm.universe.bugglequest.mapeditor;
+package plm.core.ui.editor.buggleeditor;
 
 import java.awt.BorderLayout;
 import java.awt.Color;
@@ -22,7 +22,6 @@ import plm.universe.Direction;
 import plm.universe.Entity;
 import plm.universe.World;
 import plm.universe.bugglequest.AbstractBuggle;
-import plm.universe.bugglequest.Baggle;
 import plm.universe.bugglequest.BuggleWorld;
 import plm.universe.bugglequest.BuggleWorldCell;
 import plm.universe.bugglequest.exception.AlreadyHaveBaggleException;
@@ -242,10 +241,10 @@ public class PropertiesEditor extends JComponent implements EditionListener {
 
 					} else if (value.equalsIgnoreCase("Y")) {
 						if (!selected.hasBaggle()) // only update if needed
-							selected.setBaggle(new Baggle(selected));
+							selected.baggleAdd();
 					} else {
 						if (selected.hasBaggle()) // only update if needed
-							selected.setBaggle(null);
+							selected.baggleRemove();
 					}
 				} catch (AlreadyHaveBaggleException e) { 
 					System.err.println("The impossible happened (yet again)");
diff --git a/src/plm/universe/Entity.java b/src/plm/universe/Entity.java
index ff16efb..849cf36 100644
--- a/src/plm/universe/Entity.java
+++ b/src/plm/universe/Entity.java
@@ -248,7 +248,6 @@ public abstract class Entity {
 				e.printStackTrace();
 			}
 		}
-
 	}
 
 	private Map<ProgrammingLanguage,String> script = new HashMap<ProgrammingLanguage, String>(); /* What to execute when running a scripting language */
diff --git a/src/plm/universe/bugglequest/AbstractBuggle.java b/src/plm/universe/bugglequest/AbstractBuggle.java
index 79a308d..18158dd 100644
--- a/src/plm/universe/bugglequest/AbstractBuggle.java
+++ b/src/plm/universe/bugglequest/AbstractBuggle.java
@@ -28,7 +28,7 @@ public abstract class AbstractBuggle extends Entity {
 
 	boolean brushDown;
 
-	private Baggle baggle;
+	private boolean carryBaggle;
 
 	/* This is for the simple buggle to indicate that it did hit a wall, and is thus not a valid
 	 * candidate for exercise completion.
@@ -322,7 +322,7 @@ public abstract class AbstractBuggle extends Entity {
 	}
 
 	public boolean isCarryingBaggle() {
-		return this.baggle != null;
+		return this.carryBaggle;
 	}
 
 	@Deprecated
@@ -343,12 +343,13 @@ public abstract class AbstractBuggle extends Entity {
 			throw new NoBaggleUnderBuggleException(Game.i18n.tr("There is no baggle to pick up here."));
 		if (isCarryingBaggle())
 			throw new AlreadyHaveBaggleException(Game.i18n.tr("Your are already carrying a baggle."));
-		baggle = getCellFromLesson(this.x, this.y).pickupBaggle();
+		getCellFromLesson(this.x, this.y).baggleRemove();
+		carryBaggle = true;
 	}
 
 	public void dropBaggle() throws AlreadyHaveBaggleException {
-		getCellFromLesson(this.x, this.y).setBaggle(this.baggle);
-		baggle = null;
+		getCellFromLesson(this.x, this.y).baggleAdd();
+		carryBaggle = false;
 	}
 
 	public boolean isOverMessage() {
diff --git a/src/plm/universe/bugglequest/Baggle.java b/src/plm/universe/bugglequest/Baggle.java
deleted file mode 100644
index c12c628..0000000
--- a/src/plm/universe/bugglequest/Baggle.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package plm.universe.bugglequest;
-
-import java.awt.Color;
-
-public class Baggle {
-
-	private Color color;
-	private BuggleWorldCell cell;
-
-	public static final Color DEFAULT_COLOR = new Color(0.82f,0.41f,0.12f);
-	
-	
-	public Baggle(BuggleWorldCell c) {
-		this(c, DEFAULT_COLOR);
-	}
-
-	public Baggle(BuggleWorldCell cell, Color c) {
-		this.cell = cell;
-		this.color = c;
-	}
-	
-	public Baggle(Baggle b) {
-		this.color = b.color;
-		this.cell = b.cell;
-	}
-	
-	public void setCell(BuggleWorldCell c) {
-		this.cell = c;
-	}
-		
-	@Override
-	public String toString() {
-		return "Baggle ("+this.getClass().getName()+"): Color:" + color;
-	}
-
-	@Override
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((color == null) ? 0 : color.hashCode());
-		//result = prime * result + ((cell == null) ? 0 : cell.hashCode());
-		return result;
-	}
-
-	@Override
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		Baggle other = (Baggle) obj;
-		if (color == null) {
-			if (other.color != null)
-				return false;
-		} else if (!color.equals(other.color))
-			return false;
-//		if (cell == null) {
-//			if (other.cell != null)
-//				return false;
-//		} //else if (!cell.equals(other.cell))
-		//	return false;
-		return true;
-	}
-
-	
-
-}
diff --git a/src/plm/universe/bugglequest/BuggleWorld.java b/src/plm/universe/bugglequest/BuggleWorld.java
index 0115ba0..6a0c4d4 100644
--- a/src/plm/universe/bugglequest/BuggleWorld.java
+++ b/src/plm/universe/bugglequest/BuggleWorld.java
@@ -244,7 +244,7 @@ public class BuggleWorld extends GridWorld {
 
 				if (baggleFlag.equalsIgnoreCase("baggle"))
 					try {
-						cell.setBaggle(new Baggle(cell));
+						cell.baggleAdd();
 					} catch (AlreadyHaveBaggleException e) {
 						throw new BrokenWorldFileException(Game.i18n.tr(
 								"The cell {0},{1} seem to be defined more than once. At least, there is two baggles here, which is not allowed.",x,y));
@@ -390,7 +390,9 @@ public class BuggleWorld extends GridWorld {
 	public void addContent(int x, int y, String string) {
 		getCell(x, y).addContent(string);
 	}
-
+	public void addBaggle(int x, int y) {
+		getCell(x, y).baggleAdd();
+	}
 	public void putTopWall(int x, int y) {
 		getCell(x, y).putTopWall();		
 	}
@@ -398,9 +400,6 @@ public class BuggleWorld extends GridWorld {
 	public void putLeftWall(int x, int y) {
 		getCell(x, y).putLeftWall();		
 	}
-	public void newBaggle(int x, int y) throws AlreadyHaveBaggleException {
-		getCell(x, y).newBaggle();		
-	}
 	@Override
 	public void setupBindings(ProgrammingLanguage lang,ScriptEngine engine) throws ScriptException {
 		if (lang.equals(Game.PYTHON)) {
@@ -417,7 +416,7 @@ public class BuggleWorld extends GridWorld {
 				"	entity.back()\n"+
 				"def right():\n"+
 				"	entity.right()\n"+
-				"\n"+
+				
 				"def getWorldHeight():\n"+
 				"	return entity.getWorldHeight()\n"+
 				"def getWorldWidth():\n"+
diff --git a/src/plm/universe/bugglequest/BuggleWorldCell.java b/src/plm/universe/bugglequest/BuggleWorldCell.java
index 62fdf71..5e9b332 100644
--- a/src/plm/universe/bugglequest/BuggleWorldCell.java
+++ b/src/plm/universe/bugglequest/BuggleWorldCell.java
@@ -6,6 +6,7 @@ import plm.core.model.Game;
 import plm.universe.GridWorld;
 import plm.universe.GridWorldCell;
 import plm.universe.bugglequest.exception.AlreadyHaveBaggleException;
+import plm.universe.bugglequest.exception.NoBaggleUnderBuggleException;
 
 
 
@@ -16,8 +17,9 @@ public class BuggleWorldCell extends GridWorldCell {
 	
 	public static final Color DEFAULT_COLOR = Color.white;
 	public static final Color DEFAULT_MSG_COLOR = new Color(0.5f,0.5f,0.9f);
+	public static final Color DEFAULT_BAGGLE_COLOR = new Color(0.82f,0.41f,0.12f);
 
-	private Baggle baggle;
+	private boolean hasBaggle;
 	
 	private String content = "";
 	
@@ -26,32 +28,27 @@ public class BuggleWorldCell extends GridWorldCell {
 	private boolean topWall;
 
 	public BuggleWorldCell(BuggleWorld w, int x, int y) {
-		this(w, x, y, DEFAULT_COLOR, false, false, null, "");
+		this(w, x, y, DEFAULT_COLOR, false, false, false, "");
 	}
 
 	public BuggleWorldCell(BuggleWorldCell c, GridWorld w) {
-		this((BuggleWorld) w, c.x, c.y, c.color, c.leftWall, c.topWall, null, null);
-		if (c.hasBaggle()) {
-			Baggle b = new Baggle(c.getBaggle());
-			b.setCell(this);
-			this.baggle = b;
-		}
-		this.content = c.content;
+		this((BuggleWorld) w, c.x, c.y, c.color, c.leftWall, c.topWall, c.hasBaggle(), null);
+		this.content = new String(c.content);
 	}
 	public BuggleWorldCell copy(GridWorld w) {
 		return new BuggleWorldCell(this,w);
 	}
 
 	public BuggleWorldCell(BuggleWorld w, int x, int y, Color color, boolean leftWall, boolean topWall) {
-		this(w, x, y, color, leftWall, topWall, null, "");
+		this(w, x, y, color, leftWall, topWall, false, "");
 	}
 
-	public BuggleWorldCell(BuggleWorld w, int x, int y, Color c, boolean leftWall, boolean topWall, Baggle baggle, String content) {
+	public BuggleWorldCell(BuggleWorld w, int x, int y, Color c, boolean leftWall, boolean topWall, boolean baggle, String content) {
 		super(w,x,y);
 		this.color = c;
 		this.leftWall = leftWall;
 		this.topWall = topWall;
-		this.baggle = baggle;
+		this.hasBaggle = baggle;
 		this.content = content;
 	}
 
@@ -116,41 +113,20 @@ public class BuggleWorldCell extends GridWorldCell {
 	}
 
 	public boolean hasBaggle() {
-		return this.baggle != null;
+		return hasBaggle;
 	}
 
-	public Baggle getBaggle() {
-		return this.baggle;
-	}
-
-	public void newBaggle() throws AlreadyHaveBaggleException {
-		//Logger.log("WorldCell:newBaggle", "");
-		if (this.baggle != null) 
+	public void baggleAdd() throws AlreadyHaveBaggleException {
+		if (hasBaggle) 
 			throw new AlreadyHaveBaggleException(Game.i18n.tr("There is already a baggle here."));
-		this.baggle = new Baggle(this);
+		hasBaggle = true;
 		world.notifyWorldUpdatesListeners();		
 	}
 	
-	public void newBaggle(Color c) throws AlreadyHaveBaggleException {
-		if (this.baggle != null) 
-			throw new AlreadyHaveBaggleException(Game.i18n.tr("There is already a baggle here."));
-		this.baggle = new Baggle(this,c);
-		world.notifyWorldUpdatesListeners();
-	}
-	
-	public void setBaggle(Baggle b) throws AlreadyHaveBaggleException {
-		if (this.baggle != null && b != null) 
-			throw new AlreadyHaveBaggleException(Game.i18n.tr("There is already a baggle here."));
-		this.baggle = b;
-		world.notifyWorldUpdatesListeners();
-	}
-
-	public Baggle pickupBaggle() {
-		Baggle b = this.baggle;
-		this.baggle.setCell(null);
-		baggle = null;		
-		world.notifyWorldUpdatesListeners();
-		return b;
+	public void baggleRemove() {
+		if (!hasBaggle)
+			throw new NoBaggleUnderBuggleException(Game.i18n.tr("There is no baggle to pick up here."));
+		hasBaggle = false;
 	}
 	
 	public boolean hasContent() {
@@ -199,12 +175,7 @@ public class BuggleWorldCell extends GridWorldCell {
 		if (getClass() != obj.getClass())
 			return false;
 		BuggleWorldCell other = (BuggleWorldCell) obj;
-		//if (hasBaggle() != other.hasBaggle())
-		//	return false;
-		if (baggle == null) {
-			if (other.baggle != null)
-				return false;
-		} else if (!baggle.equals(other.baggle))
+		if (hasBaggle() != other.hasBaggle())
 			return false;
 		if (color == null) {
 			if (other.color != null)
@@ -227,12 +198,10 @@ public class BuggleWorldCell extends GridWorldCell {
 	/* This function is called as answer.diffTo(current) */
 	public String diffTo(BuggleWorldCell current) {
 		StringBuffer sb = new StringBuffer();
-		if (baggle == null && current.baggle != null) 
+		if (! hasBaggle && current.hasBaggle) 
 			sb.append(this.world.i18n.tr(", there shouldn't be this baggle"));
-		if (baggle != null && current.baggle == null)
+		if (  hasBaggle && ! current.hasBaggle)
 			sb.append(this.world.i18n.tr(", there should be a baggle"));
-		if (baggle != null && current.baggle != null && !baggle.equals(current.baggle))
-			sb.append(this.world.i18n.tr(", the baggle differs"));
 		if (color == null) {
 			if (current.color != null)
 				sb.append(this.world.i18n.tr(", the ground should not be {0}",current.color));
diff --git a/src/plm/universe/bugglequest/mapeditor/package-info.java b/src/plm/universe/bugglequest/mapeditor/package-info.java
deleted file mode 100644
index e7a25fb..0000000
--- a/src/plm/universe/bugglequest/mapeditor/package-info.java
+++ /dev/null
@@ -1,5 +0,0 @@
-/**
- * This package contains another binary, which can be used to edit BuggleWorld maps
- */
-package plm.universe.bugglequest.mapeditor;
-
diff --git a/src/plm/universe/bugglequest/ui/BuggleWorldView.java b/src/plm/universe/bugglequest/ui/BuggleWorldView.java
index 0e817b0..7e706d0 100644
--- a/src/plm/universe/bugglequest/ui/BuggleWorldView.java
+++ b/src/plm/universe/bugglequest/ui/BuggleWorldView.java
@@ -17,7 +17,6 @@ import plm.core.ui.WorldView;
 import plm.universe.Entity;
 import plm.universe.World;
 import plm.universe.bugglequest.AbstractBuggle;
-import plm.universe.bugglequest.Baggle;
 import plm.universe.bugglequest.BuggleWorld;
 import plm.universe.bugglequest.BuggleWorldCell;
 
@@ -102,7 +101,7 @@ public class BuggleWorldView extends WorldView {
 				g.fill(new Rectangle2D.Double(padx+x*cellW, pady+y*cellW, cellW, cellW));	
 				
 				if (cell.hasBaggle())
-					drawBaggle(g, cell, cell.getBaggle());
+					drawBaggle(g, cell);
 				if (cell.hasContent())
 					drawMessage(g, cell, cell.getContent());
 			}
@@ -207,7 +206,7 @@ public class BuggleWorldView extends WorldView {
 		}
 	}
 	
-	private void drawBaggle(Graphics2D g, BuggleWorldCell cell, Baggle b) {
+	private void drawBaggle(Graphics2D g, BuggleWorldCell cell) {
 		double padx = getPadX();
 		double pady = getPadY();
 	
@@ -236,12 +235,12 @@ public class BuggleWorldView extends WorldView {
 			}
 			
 		} else {
-			g.setColor(Baggle.DEFAULT_COLOR);
+			g.setColor(BuggleWorldCell.DEFAULT_BAGGLE_COLOR);
 			g.fill(new Arc2D.Double(padx+ox+pad, pady+oy+pad, d, d, 0, 360, Arc2D.CHORD));
 			g.setColor(getCellColor(cell.getX(), cell.getY()));
 			g.fill(new Arc2D.Double(padx+ox+pad2, pady+oy+pad2, d2, d2, 0, 360, Arc2D.CHORD));
 
-			g.setColor(Baggle.DEFAULT_COLOR.darker().darker());
+			g.setColor(BuggleWorldCell.DEFAULT_BAGGLE_COLOR.darker().darker());
 			g.draw(new Arc2D.Double(padx+ox+pad, pady+oy+pad, d, d, 0, 360, Arc2D.CHORD));
 			g.draw(new Arc2D.Double(padx+ox+pad2, pady+oy+pad2, d2, d2, 0, 360, Arc2D.CHORD));
 		}
diff --git a/src/plm/universe/sort/SortingWorld.java b/src/plm/universe/sort/SortingWorld.java
index 976fe59..300af35 100644
--- a/src/plm/universe/sort/SortingWorld.java
+++ b/src/plm/universe/sort/SortingWorld.java
@@ -32,29 +32,37 @@ public class SortingWorld extends World {
 
 	/** Constructor used in the exercises */
 	public SortingWorld(String name, int nbValues) {
+		this(name, nbValues, true);
+	}
+	public SortingWorld(String name, int nbValues, boolean someoneHomeOk) {
 		super(name);
 		setDelay(50);
 		this.values = new int[nbValues];
 		for (int i=0 ; i< this.values.length ; i++) 
-		{
 			this.values[i] = i;
-		}
+		
 		scramble();
+		// If instructed so, scramble the values until none is @home
+		if (! someoneHomeOk) {	
+			boolean someoneHome;
+			do {
+				someoneHome = false;
+				for (int i=0;i<values.length;i++) 
+					if (values[i] == i)
+						someoneHome = true;
+				if (someoneHome)
+					scramble();
+			} while (!someoneHome);
+		}
 		this.initValues = this.values;
 	}
 
 	private void scramble() {
 		while( this.isSorted() )
-		{
 			for ( int caseNumber = 0 ; caseNumber < this.values.length ; caseNumber++)
-			{
 				// Swapping time !
 				if ( Math.random() > 0.5)
-				{
 					this.exchangeValues(caseNumber,(int)(Math.random()*this.values.length));
-				}
-			}
-		}
 	}
 
 	public boolean equals(Object o) {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/plm.git



More information about the pkg-java-commits mailing list