diff --git a/src/main/kotlin/unibz.cs.semint.kprime/domain/ddl/Schema.kt b/src/main/kotlin/unibz.cs.semint.kprime/domain/ddl/Schema.kt
index aa729b7f8962208af570a95bf1d4a0cc8cff36d6..0264fcf51deb79f163186ef30e5e285f8efe2b5a 100644
--- a/src/main/kotlin/unibz.cs.semint.kprime/domain/ddl/Schema.kt
+++ b/src/main/kotlin/unibz.cs.semint.kprime/domain/ddl/Schema.kt
@@ -123,8 +123,16 @@ class Schema () {
     fun dropTable(commandArgs:String) : Schema {
         var tableNames = commandArgs.split(" ")
         for (tableName  in tableNames) {
-            var table = table(tableName)
-            tables().remove(table)
+            val t= table(tableName)
+            if (t!=null){ tables().remove(t)}
+            val toRemove = mutableListOf<Constraint>()
+            for (constr in constraints()) {
+                if (constr.source.table.equals(tableName))
+                    toRemove.add(constr)
+                if (constr.target.table.equals(tableName))
+                    toRemove.add(constr)
+            }
+            constraints().removeAll(toRemove)
         }
         return this
     }
diff --git a/src/main/kotlin/unibz.cs.semint.kprime/usecase/common/ApplyChangeSetUseCase.kt b/src/main/kotlin/unibz.cs.semint.kprime/usecase/common/ApplyChangeSetUseCase.kt
index 8da78288c42a1be6b20c01a538a8a8a012cbcf56..c2bf04e0b33b3b4d4f7d3c23c59a977b2ac4ddcb 100644
--- a/src/main/kotlin/unibz.cs.semint.kprime/usecase/common/ApplyChangeSetUseCase.kt
+++ b/src/main/kotlin/unibz.cs.semint.kprime/usecase/common/ApplyChangeSetUseCase.kt
@@ -1,5 +1,6 @@
 package unibz.cs.semint.kprime.usecase.common
 
+import unibz.cs.semint.kprime.domain.ddl.Constraint
 import unibz.cs.semint.kprime.domain.ddl.Database
 import unibz.cs.semint.kprime.domain.dml.*
 import unibz.cs.semint.kprime.usecase.service.IXMLSerializerService
@@ -32,15 +33,16 @@ class ApplyChangeSetUseCase(serializer : IXMLSerializerService) {
         db.schema.tables().add(createTable)
         return db
     }
+
     fun createConstraint(db:Database, createConstraint: CreateConstraint): Database {
         db.schema.constraints().add(createConstraint)
         return db
     }
+
     fun dropTable(db:Database, dropTable: DropTable):Database {
         if (db.schema.tables().isEmpty()) return db
         if (db.schema==null) return db
-        val t= db.schema.table(dropTable.tableName)
-        if (t!=null){ db.schema.tables().remove(t)}
+        db.schema.dropTable(dropTable.tableName)
         return db
     }