diff --git a/mysql-test/ndb/ndb_config_1_node.ini b/mysql-test/ndb/ndb_config_1_node.ini
new file mode 100644
index 0000000000000000000000000000000000000000..53a5416143280883891988f3695877f4c8382f5a
--- /dev/null
+++ b/mysql-test/ndb/ndb_config_1_node.ini
@@ -0,0 +1,37 @@
+[ndbd default]
+NoOfReplicas= 1
+MaxNoOfConcurrentTransactions= 64
+MaxNoOfConcurrentOperations= CHOOSE_MaxNoOfConcurrentOperations
+DataMemory= CHOOSE_DataMemory
+IndexMemory= CHOOSE_IndexMemory
+Diskless= CHOOSE_Diskless
+TimeBetweenWatchDogCheck= 30000
+DataDir= CHOOSE_FILESYSTEM
+MaxNoOfOrderedIndexes= CHOOSE_MaxNoOfOrderedIndexes
+MaxNoOfAttributes= CHOOSE_MaxNoOfAttributes
+TimeBetweenGlobalCheckpoints= 500
+NoOfFragmentLogFiles= 3
+
+[ndbd]
+HostName= CHOOSE_HOSTNAME_1   # hostname is a valid network adress
+
+[ndb_mgmd]
+HostName= CHOOSE_HOSTNAME_1   # hostname is a valid network adress
+DataDir= CHOOSE_FILESYSTEM    #
+PortNumber= CHOOSE_PORT_MGM
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
diff --git a/mysql-test/ndb/ndb_config_2_node.ini b/mysql-test/ndb/ndb_config_2_node.ini
index a6a56376f3385f982b409b9ce0b6c365ab530a6e..f3c9f42a7ac60746e8c85fab89b719f3a76ae8c7 100644
--- a/mysql-test/ndb/ndb_config_2_node.ini
+++ b/mysql-test/ndb/ndb_config_2_node.ini
@@ -1,5 +1,6 @@
 [ndbd default]
 NoOfReplicas= 2
+MaxNoOfConcurrentTransactions= 64
 MaxNoOfConcurrentOperations= CHOOSE_MaxNoOfConcurrentOperations
 DataMemory= CHOOSE_DataMemory
 IndexMemory= CHOOSE_IndexMemory
@@ -7,6 +8,9 @@ Diskless= CHOOSE_Diskless
 TimeBetweenWatchDogCheck= 30000
 DataDir= CHOOSE_FILESYSTEM
 MaxNoOfOrderedIndexes= CHOOSE_MaxNoOfOrderedIndexes
+MaxNoOfAttributes= CHOOSE_MaxNoOfAttributes
+TimeBetweenGlobalCheckpoints= 500
+NoOfFragmentLogFiles= 3
 
 [ndbd]
 HostName= CHOOSE_HOSTNAME_1   # hostname is a valid network adress
@@ -26,3 +30,11 @@ PortNumber= CHOOSE_PORT_MGM
 [mysqld]
 
 [mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
diff --git a/mysql-test/ndb/ndb_config_4_node.ini b/mysql-test/ndb/ndb_config_4_node.ini
new file mode 100644
index 0000000000000000000000000000000000000000..207b383bb830f462999b051feaf305e50ad9d446
--- /dev/null
+++ b/mysql-test/ndb/ndb_config_4_node.ini
@@ -0,0 +1,46 @@
+[ndbd default]
+NoOfReplicas= 2
+MaxNoOfConcurrentTransactions= 64
+MaxNoOfConcurrentOperations= CHOOSE_MaxNoOfConcurrentOperations
+DataMemory= CHOOSE_DataMemory
+IndexMemory= CHOOSE_IndexMemory
+Diskless= CHOOSE_Diskless
+TimeBetweenWatchDogCheck= 30000
+DataDir= CHOOSE_FILESYSTEM
+MaxNoOfOrderedIndexes= CHOOSE_MaxNoOfOrderedIndexes
+MaxNoOfAttributes= CHOOSE_MaxNoOfAttributes
+TimeBetweenGlobalCheckpoints= 500
+NoOfFragmentLogFiles= 3
+
+[ndbd]
+HostName= CHOOSE_HOSTNAME_1   # hostname is a valid network adress
+
+[ndbd]
+HostName= CHOOSE_HOSTNAME_2   # hostname is a valid network adress
+
+[ndbd]
+HostName= CHOOSE_HOSTNAME_3   # hostname is a valid network adress
+
+[ndbd]
+HostName= CHOOSE_HOSTNAME_4   # hostname is a valid network adress
+
+[ndb_mgmd]
+HostName= CHOOSE_HOSTNAME_1   # hostname is a valid network adress
+DataDir= CHOOSE_FILESYSTEM    #
+PortNumber= CHOOSE_PORT_MGM
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
diff --git a/mysql-test/ndb/ndbcluster.sh b/mysql-test/ndb/ndbcluster.sh
index e2a7132081d4e644bb9f3dd9ef895aa1f21316f7..991c5a5291d98e7c9fb570c18ae5edc1963d81d0 100644
--- a/mysql-test/ndb/ndbcluster.sh
+++ b/mysql-test/ndb/ndbcluster.sh
@@ -51,12 +51,15 @@ stop_ndb=
 initial_ndb=
 status_ndb=
 ndb_diskless=0
+ndbd_nodes=2
 
 ndb_no_ord=512
+ndb_no_attr=2048
 ndb_con_op=105000
 ndb_dmem=80M
 ndb_imem=24M
 
+VERBOSE=100
 NDB_MGM_EXTRA_OPTS=
 NDB_MGMD_EXTRA_OPTS=
 NDBD_EXTRA_OPTS=
@@ -76,14 +79,17 @@ while test $# -gt 0; do
     --debug*)
      flags_ndb="$flags_ndb $1"
      ;;
+    --ndbd-nodes=*)
+     ndbd_nodes=`echo "$1" | sed -e "s;--ndbd-nodes=;;"`
+     ;;
     --status)
      status_ndb=1
      ;;
     --small)
-     ndb_no_ord=128
-     ndb_con_op=10000
-     ndb_dmem=40M
-     ndb_imem=12M
+     ndb_no_ord=32
+     ndb_con_op=5000
+     ndb_dmem=10M
+     ndb_imem=1M
      ;;
     --diskless)
      ndb_diskless=1
@@ -106,6 +112,9 @@ while test $# -gt 0; do
     --ndbd-extra-opts=*)
      NDBD_EXTRA_OPTS=`echo "$1" | sed -e "s;--ndbd-extra-opts=;;"`
      ;;
+    --verbose=*)
+     VERBOSE=`echo "$1" | sed -e "s;--verbose=;;"`
+     ;;
     -- )  shift; break ;;
     --* ) $ECHO "Unrecognized option: $1"; exit 1 ;;
     * ) break ;;
@@ -114,9 +123,10 @@ while test $# -gt 0; do
 done
 
 fs_ndb="$fsdir/ndbcluster-$port"
+config_ini=ndb/ndb_config_${ndbd_nodes}_node.ini
 
 NDB_HOME=
-if [ ! -x "$fsdir" ]; then
+if [ ! -d "$fsdir" ]; then
   echo "$fsdir missing"
   exit 1
 fi
@@ -132,6 +142,10 @@ if [ ! -x "$exec_waiter" ]; then
   echo "$exec_waiter missing"
   exit 1
 fi
+if [ ! -f "$config_ini" ]; then
+  echo "$config_ini missing, unsupported number of nodes"
+  exit 1
+fi
 
 exec_mgmtclient="$exec_mgmtclient --no-defaults $NDB_MGM_EXTRA_OPTS"
 exec_mgmtsrvr="$exec_mgmtsrvr --no-defaults $NDB_MGMD_EXTRA_OPTS"
@@ -183,6 +197,7 @@ fi
 if [ $initial_ndb ] ; then
   rm -rf $fs_ndb/ndb_* 2>&1 | cat > /dev/null
   sed \
+    -e s,"CHOOSE_MaxNoOfAttributes","$ndb_no_attr",g \
     -e s,"CHOOSE_MaxNoOfOrderedIndexes","$ndb_no_ord",g \
     -e s,"CHOOSE_MaxNoOfConcurrentOperations","$ndb_con_op",g \
     -e s,"CHOOSE_DataMemory","$ndb_dmem",g \
@@ -191,7 +206,7 @@ if [ $initial_ndb ] ; then
     -e s,"CHOOSE_HOSTNAME_".*,"$ndb_host",g \
     -e s,"CHOOSE_FILESYSTEM","$fs_ndb",g \
     -e s,"CHOOSE_PORT_MGM","$ndb_mgmd_port",g \
-    < ndb/ndb_config_2_node.ini \
+    < "$config_ini" \
     > "$fs_ndb/config.ini"
 fi
 
@@ -202,7 +217,7 @@ if ( cd "$fs_ndb" ; $exec_mgmtsrvr -f config.ini ) ; then :; else
   echo "Unable to start $exec_mgmtsrvr from `pwd`"
   exit 1
 fi
-if sleep_until_file_created $fs_ndb/ndb_3.pid 120
+if sleep_until_file_created $fs_ndb/ndb_`expr $ndbd_nodes + 1`.pid 120
 then :; else
   exit 1
 fi
@@ -210,38 +225,43 @@ cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile"
 
 # Start database node 
 
-echo "Starting ndbd"
-( cd "$fs_ndb" ; $exec_ndb $flags_ndb & )
-if sleep_until_file_created $fs_ndb/ndb_1.pid 120
-then :; else
-  stop_default_ndbcluster
-  exit 1
-fi
-cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile"
-
-# Start database node 
-
-echo "Starting ndbd"
-( cd "$fs_ndb" ; $exec_ndb $flags_ndb & )
-if sleep_until_file_created $fs_ndb/ndb_2.pid 120
-then :; else
-  stop_default_ndbcluster
-  exit 1
-fi
-cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile"
+id=1
+while [ $id -le $ndbd_nodes ]
+do
+  if [ `expr $VERBOSE \> 1` = 1 ] ; then
+    echo "Starting ndbd $id($ndbd_nodes)"
+  fi
+  ( cd "$fs_ndb" ; $exec_ndb $flags_ndb & )
+  if sleep_until_file_created $fs_ndb/ndb_${id}.pid 120
+  then :; else
+    stop_default_ndbcluster
+    exit 1
+  fi
+  cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile"
+  id=`expr $id + 1`
+done
 
 # test if Ndb Cluster starts properly
 
-echo "Waiting for started..."
-if ( $exec_waiter ) | grep "NDBT_ProgramExit: 0 - OK"; then :; else
-  echo "Ndbcluster startup failed"
+if [ `expr $VERBOSE \> 1` = 1 ] ; then
+  echo "Waiting for started..."
+fi
+if ( $exec_waiter ) | grep "NDBT_ProgramExit: 0 - OK" > /dev/null 2>&1 ; then :; else
+  if [ `expr $VERBOSE \> 0` = 1 ] ; then
+    echo "Ndbcluster startup failed"
+  fi
   stop_default_ndbcluster
   exit 1
 fi
+if [ `expr $VERBOSE \> 1` = 1 ] ; then
+  echo "Ok"
+fi
 
 cat `find "$fs_ndb" -name 'ndb_*.pid'` > $fs_ndb/$pidfile
 
-status_ndbcluster
+if [ `expr $VERBOSE \> 2` = 1 ] ; then
+  status_ndbcluster
+fi
 }
 
 status_ndbcluster() {
diff --git a/mysql-test/r/ndb_config.result b/mysql-test/r/ndb_config.result
index ef5c924a39804f30633ae2961e6fbd18036ce038..82d760c6cfcbc78a074728889261884be63edc11 100644
--- a/mysql-test/r/ndb_config.result
+++ b/mysql-test/r/ndb_config.result
@@ -1,9 +1,9 @@
-ndbd,1,localhost ndbd,2,localhost ndb_mgmd,3,localhost mysqld,4, mysqld,5, mysqld,6, mysqld,7,
-1,localhost,41943040,12582912 2,localhost,41943040,12582912
-1 localhost 41943040 12582912
-2 localhost 41943040 12582912
+ndbd,1,localhost ndbd,2,localhost ndb_mgmd,3,localhost mysqld,4, mysqld,5, mysqld,6, mysqld,7, mysqld,8, mysqld,9, mysqld,10, mysqld,11,
+1,localhost,10485760,1048576 2,localhost,10485760,1048576
+1 localhost 10485760 1048576
+2 localhost 10485760 1048576
 1 2
-ndbd,1,localhost ndbd,2,localhost ndb_mgmd,3,localhost mysqld,4, mysqld,5, mysqld,6, mysqld,7,
+ndbd,1,localhost ndbd,2,localhost ndb_mgmd,3,localhost mysqld,4, mysqld,5, mysqld,6, mysqld,7, mysqld,8, mysqld,9, mysqld,10, mysqld,11,
 ndbd,1,localhost,52428800,26214400 ndbd,2,localhost,52428800,36700160 ndbd,3,localhost,52428800,52428800 ndbd,4,localhost,52428800,52428800 ndb_mgmd,5,localhost,, mysqld,6,localhost,,
 ndbd,1,localhost ndbd,2,localhost ndbd,3,localhost ndbd,4,localhost ndb_mgmd,5,localhost mysqld,6, mysqld,7, mysqld,8, mysqld,9, mysqld,10,
 ndbd,2,localhost ndbd,3,localhost ndbd,4,localhost ndbd,5,localhost ndb_mgmd,6,localhost mysqld,1, mysqld,7, mysqld,8, mysqld,9, mysqld,10,
diff --git a/mysql-test/r/sp-prelocking.result b/mysql-test/r/sp-prelocking.result
index 32d6d4e62643197ea7fd92dda4d228f6f229dd31..0ba3115579092fd74b71e733552750832b2ad12b 100644
--- a/mysql-test/r/sp-prelocking.result
+++ b/mysql-test/r/sp-prelocking.result
@@ -213,3 +213,4 @@ drop function f1;
 drop function f2;
 drop function f3;
 drop procedure sp1;
+drop view v1;
diff --git a/mysql-test/t/sp-prelocking.test b/mysql-test/t/sp-prelocking.test
index e5f35b19fa7638b18f84019375d0023279d165a0..bae144f51ac73ab782b7ccf992f71369fa421141 100644
--- a/mysql-test/t/sp-prelocking.test
+++ b/mysql-test/t/sp-prelocking.test
@@ -239,4 +239,4 @@ drop function f1;
 drop function f2;
 drop function f3;
 drop procedure sp1;
-
+drop view v1;