diff --git a/src/mpi-start.in b/src/mpi-start.in
index 272ab1d44ccc6f4258106f992ea523f0663e2203..9fd159383b5c94714a4c8d8cc9eac209ca84cefa 100755
--- a/src/mpi-start.in
+++ b/src/mpi-start.in
@@ -392,21 +392,26 @@ mpi_start_dummy_scheduler() {
     export MPI_START_HOSTFILE=$MPI_START_TEMP_FILE
     mpi_start_mktemp
     export MPI_START_HOST_SLOTS_FILE=$MPI_START_TEMP_FILE
-    local myhost=`hostname`
-    local slots=1
-    if test "x${MPI_DUMMY_SCH_SLOTS}" != "x" ; then
-        slots=$MPI_DUMMY_SCH_SLOTS
+    if test "x$MPI_START_DUMMY_SCH_HOSTS" = "x" ; then
+        MPI_START_DUMMY_SCH_HOSTS=`hostname`
     fi
-    local n=$slots
-    while [ $n -ne 0 ]; do
-        echo $myhost >> $MPI_START_MACHINEFILE
-        n=`expr $n - 1`
+    local nhosts=0
+    local slots=0
+    MPI_START_DUMMY_SCH_SLOTS=${MPI_START_DUMMY_SCH_SLOTS:-1}
+    for host in $MPI_START_DUMMY_SCH_HOSTS ; do
+        local n=$MPI_START_DUMMY_SCH_SLOTS
+        while [ $n -ne 0 ]; do
+            echo $host >> $MPI_START_MACHINEFILE
+            n=`expr $n - 1`
+        done
+        echo $host > $MPI_START_HOSTFILE
+        echo "$host $slots"> $MPI_START_HOST_SLOTS_FILE
+        nhosts=`expr $nhosts + 1`
+        slots=`expr $slots + $MPI_START_DUMMY_SCH_SLOTS`
     done
-    echo $myhost > $MPI_START_HOSTFILE
-    echo "$myhost $slots"> $MPI_START_HOST_SLOTS_FILE
     export MPI_START_NSLOTS=$slots
-    export MPI_START_NHOSTS=1
-    export MPI_START_NSLOTS_PER_HOST=$slots
+    export MPI_START_NHOSTS=$nhosts
+    export MPI_START_NSLOTS_PER_HOST=$MPI_START_DUMMY_SCH_SLOTS
     SCHEDULER_NAME="mpi-start-dummy"
     export MPI_START_SCHEDULER=$SCHEDULER_NAME
 }
diff --git a/tests/test_dummy.sh b/tests/test_dummy.sh
index 3710b6463f5f0e51ac8c443d55737319728a9f9b..86b5cc3ca74577bb85b00b7c210fa1551c5ede5a 100755
--- a/tests/test_dummy.sh
+++ b/tests/test_dummy.sh
@@ -14,6 +14,8 @@ setUp () {
     unset I2G_MPI_SINGLE_PROCESS
     unset I2G_MPI_NP
     unset I2G_MPI_PER_NODE
+    unset MPI_START_DUMMY_SCH_SLOTS
+    unset MPI_START_DUMMY_SCH_HOSTS
     export MPI_START_SHARED_FS=1
     export MPI_START_DUMMY_SCHEDULER=0
 }
@@ -55,4 +57,81 @@ testSchedulerError () {
     unset MPI_START_DUMMY_SCHEDULER
 }
 
+testDummySchedulerNSlots () {
+    export MPI_START_DUMMY_SCHEDULER=1
+    export I2G_MPI_APPLICATION=`$MYMKTEMP`
+    export MPI_START_DUMMY_SCH_SLOTS=2
+    cat > $I2G_MPI_APPLICATION << EOF
+#!/bin/sh
+echo "\${MPI_START_NSLOTS};\${MPI_START_NHOSTS};\${MPI_START_NSLOTS_PER_HOST};\${MPI_START_NP};\${MPI_START_SCHEDULER}"
+EOF
+    chmod +x $I2G_MPI_APPLICATION
+    output=`$I2G_MPI_START -npnode 3`
+    st=$?
+    slots=`echo $output | cut -f1 -d";"`
+    hosts=`echo $output | cut -f2 -d";"`
+    sperhosts=`echo $output | cut -f3 -d";"`
+    np=`echo $output | cut -f4 -d";"`
+    sch=`echo $output | cut -f5 -d";"`
+    assertEquals "mpi-start-dummy" $sch
+    assertEquals 2 $slots
+    assertEquals 1 $hosts
+    assertEquals 2 $sperhosts
+    assertEquals 3 $np
+    assertEquals 0 $st
+    rm -f $I2G_MPI_APPLICATION
+}
+
+
+testDummySchedulerNHosts() {
+    export MPI_START_DUMMY_SCHEDULER=1
+    export I2G_MPI_APPLICATION=`$MYMKTEMP`
+    export MPI_START_DUMMY_SCH_HOSTS="host1 host2 host3"
+    cat > $I2G_MPI_APPLICATION << EOF
+#!/bin/sh
+echo "\${MPI_START_NSLOTS};\${MPI_START_NHOSTS};\${MPI_START_NSLOTS_PER_HOST};\${MPI_START_NP};\${MPI_START_SCHEDULER}"
+EOF
+    chmod +x $I2G_MPI_APPLICATION
+    output=`$I2G_MPI_START -npnode 3`
+    st=$?
+    slots=`echo $output | cut -f1 -d";"`
+    hosts=`echo $output | cut -f2 -d";"`
+    sperhosts=`echo $output | cut -f3 -d";"`
+    np=`echo $output | cut -f4 -d";"`
+    sch=`echo $output | cut -f5 -d";"`
+    assertEquals "mpi-start-dummy" $sch
+    assertEquals 3 $slots
+    assertEquals 3 $hosts
+    assertEquals 1 $sperhosts
+    assertEquals 9 $np
+    assertEquals 0 $st
+    rm -f $I2G_MPI_APPLICATION
+}
+
+
+testDummySchedulerNHostsNSlots() {
+    export MPI_START_DUMMY_SCHEDULER=1
+    export I2G_MPI_APPLICATION=`$MYMKTEMP`
+    export MPI_START_DUMMY_SCH_SLOTS=2
+    export MPI_START_DUMMY_SCH_HOSTS="host1 host2 host3"
+    cat > $I2G_MPI_APPLICATION << EOF
+#!/bin/sh
+echo "\${MPI_START_NSLOTS};\${MPI_START_NHOSTS};\${MPI_START_NSLOTS_PER_HOST};\${MPI_START_NP};\${MPI_START_SCHEDULER}"
+EOF
+    chmod +x $I2G_MPI_APPLICATION
+    output=`$I2G_MPI_START -npnode 3`
+    st=$?
+    slots=`echo $output | cut -f1 -d";"`
+    hosts=`echo $output | cut -f2 -d";"`
+    sperhosts=`echo $output | cut -f3 -d";"`
+    np=`echo $output | cut -f4 -d";"`
+    sch=`echo $output | cut -f5 -d";"`
+    assertEquals "mpi-start-dummy" $sch
+    assertEquals 6 $slots
+    assertEquals 3 $hosts
+    assertEquals 2 $sperhosts
+    assertEquals 9 $np
+    assertEquals 0 $st
+    rm -f $I2G_MPI_APPLICATION
+}
 . $SHUNIT2