diff --git a/sql/ha_innobase.cc b/sql/ha_innobase.cc
index 0cf388f4fab99d2a119a4fdba7d64bc210a33b2d..0852282a7e7b6c40442a9a41d9d099a97312f722 100644
--- a/sql/ha_innobase.cc
+++ b/sql/ha_innobase.cc
@@ -265,7 +265,40 @@ innobase_mysql_print_thd(
 {
   	THD*  thd;
 
-  	thd = (THD*) input_thd;
+        thd = (THD*) input_thd;
+
+        buf += sprintf(buf, "MySQL thread id %lu, query id %lu",
+                       thd->thread_id, thd->query_id);
+        if (thd->host) {
+                buf += sprintf(buf, " %.30s", thd->host);
+        }
+
+        if (thd->ip) {
+                buf += sprintf(buf, " %.20s", thd->ip);
+        }
+
+        if (thd->user) {
+                buf += sprintf(buf, " %.20s", thd->user);
+        }
+
+        if (thd->proc_info) {
+                buf += sprintf(buf, " %.50s", thd->proc_info);
+        }
+
+        if (thd->query) {
+                buf += sprintf(buf, "\n%.150s", thd->query);
+        }
+
+        buf += sprintf(buf, "\n");
+
+#ifdef notdefined
+        /* August 8, 2002
+        Revert these changes because they seem to make control
+        characters sometimes appear in the output and scramble it;
+        on platforms (what are those?) where sprintf does not work
+        we should define sprintf as 'my_emulated_sprintf'; InnoDB code
+        contains lots of sprintfs, it does not help to remove them from
+	just a single file */
 
 	/*  We can't use value of sprintf() as this is not portable */
   	buf+= my_sprintf(buf,
@@ -301,6 +334,7 @@ innobase_mysql_print_thd(
 	  buf=strnmov(buf, thd->query, 150);
   	}  
 	*buf='\n';
+#endif
 }
 }
 
@@ -894,7 +928,7 @@ ha_innobase::open(
 				      		     norm_name, NULL);
  	if (NULL == ib_table) {
 
-	  sql_print_error("InnoDB error:\n\
+	        sql_print_error("InnoDB error:\n\
 Cannot find table %s from the internal data dictionary\n\
 of InnoDB though the .frm file for the table exists. Maybe you\n\
 have deleted and recreated InnoDB data files but have forgotten\n\