diff --git a/src/org/apache/ddlutils/platform/SqlBuilder.java b/src/org/apache/ddlutils/platform/SqlBuilder.java
--- a/src/org/apache/ddlutils/platform/SqlBuilder.java
+++ b/src/org/apache/ddlutils/platform/SqlBuilder.java
@@ -791,25 +791,20 @@
         }
       } else {
         Iterator it2 = changes.iterator();
-        Map<Table, List<Index>> newIndexesMap = new HashMap<Table, List<Index>>();
+        List<Index> newIndexesList = new ArrayList<Index>();
         while (it2.hasNext()) {
           Object change = it2.next();
           if (change instanceof AddIndexChange) {
             AddIndexChange ichange = ((AddIndexChange) change);
 
-            List<Index> indexesForTable = newIndexesMap.get(ichange.getChangedTable());
-            if (indexesForTable == null) {
-              indexesForTable = new ArrayList<Index>();
+            if (ichange.getChangedTable().getName()
+                .equalsIgnoreCase(desiredModel.getTable(i).getName())) {
+              newIndexesList.add(ichange.getNewIndex());
+              processChange(currentModel, desiredModel, params, ichange);
             }
-            indexesForTable.add(ichange.getNewIndex());
-            newIndexesMap.put(ichange.getChangedTable(), indexesForTable);
-
-            if (ichange.getChangedTable().getName()
-                .equalsIgnoreCase(desiredModel.getTable(i).getName()))
-              processChange(currentModel, desiredModel, params, ichange);
           }
         }
-        newIndexesPostAction(newIndexesMap);
+        newIndexesPostAction(desiredModel.getTable(i), newIndexesList);
       }
     }
 
@@ -884,12 +879,14 @@
 
   /**
    * Hook that is executed after all the NewIndexChanges for a list of tables have been created
-   * 
-   * @param newIndexesMap
-   *          a map of all the tables that have new indexes, along with the new indexes
+   *
+   * @param table
+   *          the table that new indexes belong to
+   * @param indexList
+   *          a list of the new indexes
    * @throws IOException
    */
-  protected void newIndexesPostAction(Map<Table, List<Index>> newIndexesMap) throws IOException {
+  protected void newIndexesPostAction(Table table, List<Index> indexList) throws IOException {
   }
 
   /**
@@ -900,9 +897,7 @@
    * @throws IOException
    */
   private void newIndexesPostAction(Table table, Index[] indexes) throws IOException {
-    Map<Table, List<Index>> newIndexesMap = new HashMap<Table, List<Index>>();
-    newIndexesMap.put(table, Arrays.asList(indexes));
-    newIndexesPostAction(newIndexesMap);
+    newIndexesPostAction(table, Arrays.asList(indexes));
   }
 
   public boolean hasBeenRecreated(Table table) {
diff --git a/src/org/apache/ddlutils/platform/oracle/Oracle8Builder.java b/src/org/apache/ddlutils/platform/oracle/Oracle8Builder.java
--- a/src/org/apache/ddlutils/platform/oracle/Oracle8Builder.java
+++ b/src/org/apache/ddlutils/platform/oracle/Oracle8Builder.java
@@ -624,26 +624,25 @@
    * {@inheritDoc}
    */
   @Override
-  protected void newIndexesPostAction(Map<Table, List<Index>> newIndexesMap) throws IOException {
+  protected void newIndexesPostAction(Table table, List<Index> newIndexesList) throws IOException {
     // Updates the comments of the tables that have new indexes, to prevent losing the info about
     // the operator class or partial indexing of the indexed columns
-    for (Table table : newIndexesMap.keySet()) {
-      List<Index> indexesWithOperatorClass = new ArrayList<Index>();
-      List<Index> partialIndexes = new ArrayList<Index>();
-      for (Index index : newIndexesMap.get(table)) {
-        if (indexHasColumnWithOperatorClass(index)) {
-          indexesWithOperatorClass.add(index);
-        }
-        if (index.getWhereClause() != null && !index.getWhereClause().isEmpty()) {
-          partialIndexes.add(index);
-        }
+
+    List<Index> indexesWithOperatorClass = new ArrayList<Index>();
+    List<Index> partialIndexes = new ArrayList<Index>();
+    for (Index index : newIndexesList) {
+      if (indexHasColumnWithOperatorClass(index)) {
+        indexesWithOperatorClass.add(index);
       }
-      if (!indexesWithOperatorClass.isEmpty()) {
-        includeOperatorClassInTableComment(table, indexesWithOperatorClass);
+      if (index.getWhereClause() != null && !index.getWhereClause().isEmpty()) {
+        partialIndexes.add(index);
       }
-      if (!partialIndexes.isEmpty()) {
-        includeWhereClauseInColumnComment(table, partialIndexes);
-      }
+    }
+    if (!indexesWithOperatorClass.isEmpty()) {
+      includeOperatorClassInTableComment(table, indexesWithOperatorClass);
+    }
+    if (!partialIndexes.isEmpty()) {
+      includeWhereClauseInColumnComment(table, partialIndexes);
     }
 
     if (_onCreateDefaultColumns != null) {
