diff --git a/mysql-test/r/ndb_dd_basic.result b/mysql-test/r/ndb_dd_basic.result
index 014858e6856f28b12a9c50ceb29707db7d3f4a0b..470c2cb9c0efd462bfef03738727d948f060786d 100644
--- a/mysql-test/r/ndb_dd_basic.result
+++ b/mysql-test/r/ndb_dd_basic.result
@@ -186,6 +186,34 @@ INITIAL_SIZE 1000000000000K
 ENGINE = NDB;
 ERROR HY000: The size number was correct but we don't allow the digit part to be more than 2 billion
 DROP TABLE t1;
+create tablespace ts2
+add datafile 'datafile2_1.dat'
+use logfile group lg1
+initial_size 12M
+engine ndb;
+CREATE TABLE City (
+ID int(11) NOT NULL AUTO_INCREMENT,
+Name char(35) NOT NULL,
+CountryCode char(3) NOT NULL,
+District char(20) NOT NULL,
+Population int(11) NOT NULL,
+PRIMARY KEY (ID)
+) ENGINE=ndbcluster
+tablespace ts2
+storage disk;
+alter tablespace ts2
+drop datafile 'datafile2_1.dat'
+engine ndb;
+insert
+into City (Name,CountryCode,District,Population)
+values ('BeiJing','CN','Beijing',2000);
+ERROR HY000: Got error 1602 'No datafile in tablespace' from NDBCLUSTER
+drop tablespace ts2
+engine ndb;
+ERROR HY000: Failed to drop TABLESPACE
+drop table City;
+drop tablespace ts2
+engine ndb;
 CREATE TABLE t1 (a INT PRIMARY KEY, b CHAR(4) NOT NULL, c CHAR(4) NOT NULL, KEY(b)) TABLESPACE ts1 STORAGE DISK ENGINE = NDB;
 INSERT INTO t1 VALUES (1,'1','1'), (2,'2','2'), (3,'3','3');
 BEGIN;
diff --git a/mysql-test/t/ndb_dd_basic.test b/mysql-test/t/ndb_dd_basic.test
index 5d43d7997b0f59a8aa21744765faeb3c24ddeab1..81286d3121fa9f67c851723726b698bf25b785d6 100644
--- a/mysql-test/t/ndb_dd_basic.test
+++ b/mysql-test/t/ndb_dd_basic.test
@@ -7,6 +7,10 @@
 # Change Date: 2006-01-11
 # Change: Cleanup and test rename
 #################################
+# Change Author: Guangbao Ni
+# Change Date: 2007-03-20
+# Change: Test insert data when no datafile in spacetable
+#################################
 
 -- source include/have_ndb.inc
 
@@ -216,6 +220,42 @@ ENGINE = NDB;
 
 DROP TABLE t1;
 
+create tablespace ts2
+add datafile 'datafile2_1.dat'
+use logfile group lg1
+initial_size 12M
+engine ndb;
+
+CREATE TABLE City (
+   ID int(11) NOT NULL AUTO_INCREMENT,
+   Name char(35) NOT NULL,
+   CountryCode char(3) NOT NULL,
+   District char(20) NOT NULL,
+   Population int(11) NOT NULL,
+   PRIMARY KEY (ID)
+) ENGINE=ndbcluster
+tablespace ts2
+storage disk;
+
+alter tablespace ts2
+drop datafile 'datafile2_1.dat'
+engine ndb;
+
+#It will give error messages: NoDatafile in tablespace
+--error ER_GET_ERRMSG
+insert
+into City (Name,CountryCode,District,Population)
+values ('BeiJing','CN','Beijing',2000);
+
+--error ER_DROP_FILEGROUP_FAILED
+drop tablespace ts2
+engine ndb;
+
+drop table City;
+
+drop tablespace ts2
+engine ndb;
+
 ############################
 # Test update of mm/dd part
 ############################
diff --git a/storage/ndb/include/kernel/signaldata/Extent.hpp b/storage/ndb/include/kernel/signaldata/Extent.hpp
index 88f2e3942332389252cd3a9f6e3d37c235ec861b..283ea7ba85a6bd54de7ce2dcab35192ad059d41c 100644
--- a/storage/ndb/include/kernel/signaldata/Extent.hpp
+++ b/storage/ndb/include/kernel/signaldata/Extent.hpp
@@ -31,7 +31,8 @@ struct AllocExtentReq {
 
   enum ErrorCode {
     UnmappedExtentPageIsNotImplemented = 1,
-    NoExtentAvailable = 1601
+    NoExtentAvailable = 1601,
+    NoDatafile = 1602
   };
   
   union 
diff --git a/storage/ndb/src/kernel/blocks/tsman.cpp b/storage/ndb/src/kernel/blocks/tsman.cpp
index 99fbc683ceea00f72f615c6e99f588bac23f57e1..62aa80a67feadf33894390cec3a9627724f334e3 100644
--- a/storage/ndb/src/kernel/blocks/tsman.cpp
+++ b/storage/ndb/src/kernel/blocks/tsman.cpp
@@ -1483,6 +1483,12 @@ Tsman::execALLOC_EXTENT_REQ(Signal* signal)
   {
     jam();
     err = AllocExtentReq::NoExtentAvailable;
+    Local_datafile_list full_tmp(m_file_pool, ts_ptr.p->m_full_files);
+    if (tmp.isEmpty() && full_tmp.isEmpty())
+    { 
+      jam();
+      err = AllocExtentReq::NoDatafile;
+    }
   }
   
   /**
diff --git a/storage/ndb/src/ndbapi/ndberror.c b/storage/ndb/src/ndbapi/ndberror.c
index 7dd16f2d57f317dd83422e934db0979b3dbba379..b21b64156c8ed30d7040d65cea6952b36ca9a21e 100644
--- a/storage/ndb/src/ndbapi/ndberror.c
+++ b/storage/ndb/src/ndbapi/ndberror.c
@@ -201,7 +201,8 @@ ErrorBundle ErrorCodes[] = {
   { 904,  HA_ERR_INDEX_FILE_FULL, IS, "Out of fragment records (increase MaxNoOfOrderedIndexes)" },
   { 905,  DMEC, IS, "Out of attribute records (increase MaxNoOfAttributes)" },
   { 1601, HA_ERR_RECORD_FILE_FULL, IS, "Out extents, tablespace full" },
-  
+  { 1602, DMEC, IS,"No datafile in tablespace" },
+
   /**
    * TimeoutExpired 
    */