diff --git a/shukan/ShukanData.java b/shukan/ShukanData.java
index 47ff72fb7ff236eacfd66fae701c92a6991e785c..58d2dcbe1c1013ed2fe6b3cb79e90707357deeee 100644
--- a/shukan/ShukanData.java
+++ b/shukan/ShukanData.java
@@ -439,9 +439,9 @@ public class ShukanData
     this.mod[curs][mod].setOnLeft (act);
   }
   /** Sets an activity to be displayed on right */
-  public void setOnMiddle (int curs, int mod, int act)
+  public void setOnMiddle (int curs, int mod, int act, int index)
   {
-    this.mod[curs][mod].setOnMiddle (act);
+    this.mod[curs][mod].setOnMiddle (act, index);
   }
 
   /** Sets an activity to be displayed on right */
diff --git a/shukan/ShukanModule.java b/shukan/ShukanModule.java
index ccf15f3c5b8811e36765c1b23eaf01a51341e4d7..d7869b7600a41839b1534129d914c3886465f567 100644
--- a/shukan/ShukanModule.java
+++ b/shukan/ShukanModule.java
@@ -312,16 +312,20 @@ public class ShukanModule
     onLeft[act] = true;
   }
   /** Sets an activity to be displayed on middle */
-  public void setOnMiddle (int act) {
+  public void setOnMiddle (int act, int index) {
     if (act >= onLeft.length) {
       boolean[] tmpRight = new boolean[onLeft.length + 1];
       boolean[] tmpLeft = new boolean[onLeft.length + 1];
-      for (int i = 0; i < onLeft.length; i++) {
+      for (int i = 0; i < index; i++) {
         tmpLeft[i] = onLeft[i];
         tmpRight[i] = onRight[i];
       }
-      tmpRight[act] = false;
-      tmpLeft[act] = false;
+      tmpRight[index] = false;
+      tmpLeft[index] = false;
+      for (int i = index+1; i < onLeft.length+1; i++) {
+        tmpLeft[i] = onLeft[i-1];
+        tmpRight[i] = onRight[i-1];
+      }
       onLeft = tmpLeft;
       onRight = tmpRight;
     } else {
@@ -455,7 +459,6 @@ public class ShukanModule
   {
     int n1 = sched.identify (a1);
     int n2 = sched.identify (a2);
-    System.out.println (n1 + " <--> " + n2);
     int val = activ[n1];
     activ[n1] = activ[n2];
     activ[n2] = val;
diff --git a/shukan/ShukanView.java b/shukan/ShukanView.java
index 8dd25a06e5d566b875ea43f45469ca1c6458b2e2..7ab1bf5ab07ed149b461eb4e179533accb3b46f6 100644
--- a/shukan/ShukanView.java
+++ b/shukan/ShukanView.java
@@ -471,10 +471,11 @@ public class ShukanView extends JPanel
         int cursus = data.cursusNumber();
         int mod_start = data.moduleStart(cursus, num_mod);
         if (mod_start!=0) mod_start-=data.startWeekNumber();
+        int nb_act = data.scheduleInWeek(num_mod, mod_start).length;
 
         data.addActivity(cursus, num_mod, data.activityCount(cursus, num_mod), ShukanModule.TYPES[num_act]);
         data.scheduleActivity(cursus, num_mod, data.activityCount(cursus, num_mod)-1, mod_start);
-        data.setOnMiddle(cursus, num_mod, data.activityCount(cursus, num_mod)-1);
+        data.setOnMiddle(cursus, num_mod, data.activityCount(cursus, num_mod)-1, nb_act);
         repaint();
         f.dispose();
       }