diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc
index a1b9b226f3917d1f6d80fc11855279e2f4fad69c..743bf4b56e5f6474b1b451087a1349e478817724 100644
--- a/sql/sql_partition.cc
+++ b/sql/sql_partition.cc
@@ -5747,51 +5747,72 @@ handle_alter_part_error(ALTER_PARTITION_PARAM_TYPE *lpt, bool not_completed,
   partition_info *part_info= lpt->part_info;
   DBUG_ENTER("handle_alter_part_error");
 
-#if 0
   if (!part_info->first_log_entry &&
       execute_table_log_entry(part_info->first_log_entry))
   {
     /*
-      We couldn't recover from error
+      We couldn't recover from error, most likely manual interaction is required.
     */
+    write_log_completed(lpt, FALSE);
+    release_log_entries(part_info);
     if (not_completed)
     {
+      char *text1= "Operation was unsuccessful, table is still intact, ";
       if (drop_partition)
       {
         /* Table is still ok, but we left a shadow frm file behind. */
-        write_log_completed(lpt, TRUE);
-        release_log_entries(part_info);
-        push_warning(lpt->thd, MYSQL_ERROR::WARN_LEVEL_WARN, 1,
-"Operation was unsuccessful, table still intact, shadow frm file left behind"
-                    );
+        char *text2= "but it is possible that a shadow frm file was left behind";
+        push_warning_printf(lpt->thd, MYSQL_ERROR::WARN_LEVEL_WARN, 1,
+                            "%s \n %s", text1, text2);
+      }
+      else
+      {
+        char *text2= "but it is possible that a shadow frm file was left behind.";
+        char *text3= "It is also possible that temporary partitions are left behind, ";
+        char *text4= "these could be empty or more or less filled with records";
+        push_warning_printf(lpt->thd, MYSQL_ERROR::WARN_LEVEL_WARN, 1,
+                            "%s \n %s \n %s \n %s", text1, text2, text3, text4);
       }
     }
     else
     {
-      if (frm_install && drop_partition)
+      if (frm_install)
       {
         /*
            Failed during install of shadow frm file, table isn't intact
            and dropped partitions are still there
         */
+        char *text1= "Failed during alter of partitions, table is no longer intact, ";
+        char *text2= "The frm file is in an unknown state, and a backup";
+        char *text3= " is required.
+        push_warning_print(lpt->thd, MYSQL_ERROR::WARN_LEVEL_WARN, 1,
+                           "%s \n %s%s\n", text1, text2, text3);
       }
       else if (drop_partition)
       {
         /*
           Table is ok, we have switched to new table but left dropped partitions
           still in their places. We remove the log records and ask the user to
-          perform the action manually. We remove the log records and ask the user to
-          perform the action manually.
+          perform the action manually. We remove the log records and ask the user
+          to perform the action manually.
         */
         char *text1= "Failed during drop of partitions, table is intact, ";
         char *text2= "Manual drop of remaining partitions is required";
-        write_log_completed(lpt, TRUE);
-        release_log_entries(part_info);
         push_warning_print(lpt->thd, MYSQL_ERROR::WARN_LEVEL_WARN, 1,
                            "%s\n%s", text1, text2);
       }
-      else (frm_install)
+      else
       {
+        /*
+          We failed during renaming of partitions. The table is most certainly in
+          a very bad state so we give user warning and disable the table by
+          writing an ancient frm version into it.
+        */
+        char *text1= "Failed during renaming of partitions. We are now in a position"
+        char *text2= " where table is not reusable";
+        char *text3= "Table is disabled by writing ancient frm file version into it";
+        push_warning_print(lpt->thd, MYSQL_ERROR::WARN_LEVEL_WARN, 1,
+                           "%s%s\n%s", text1, text2, text3);
       }
     }
     
@@ -5821,7 +5842,6 @@ handle_alter_part_error(ALTER_PARTITION_PARAM_TYPE *lpt, bool not_completed,
       "Operation was successfully completed after failure of normal operation");
     }
   }
-#endif
   DBUG_VOID_RETURN;
 }