diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc
index 416d67aec3963157b1e1dd50315b2e41f0f3943f..bf07d56565acb28f04139c4b0472f1fffdf59b58 100644
--- a/sql/ha_innodb.cc
+++ b/sql/ha_innodb.cc
@@ -1969,110 +1969,6 @@ try_again:
 	return(0);
 }
 
-#ifdef HAVE_REPLICATION
-/*********************************************************************
-In synchronous replication, reports to InnoDB up to which binlog position
-we have sent the binlog to the slave. Note that replication is synchronous
-for one slave only. For other slaves, we do nothing in this function. This
-function is used in a replication master. */
-
-int
-innobase_repl_report_sent_binlog(
-/*=============================*/
-				/* out: 0 */
-	THD*	thd,		/* in: thread doing the binlog communication to
-				the slave */
-	char*	log_file_name,	/* in: binlog file name */
-	my_off_t end_offset)	/* in: the offset in the binlog file up to
-				which we sent the contents to the slave */
-{
-	int	cmp;
-	ibool	can_release_threads	= 0;
-
-	if (!innodb_inited) {
-
-		return 0;
-	}
-
-	/* If synchronous replication is not switched on, or this thd is
-	sending binlog to a slave where we do not need synchronous replication,
-	then return immediately */
-
-	if (thd->server_id != thd->variables.sync_replication_slave_id) {
-
-		/* Do nothing */
-
-		return(0);
-	}
-
-	pthread_mutex_lock(&innobase_repl_cond_mutex);
-
-	if (innobase_repl_state == 0) {
-
-		ut_print_timestamp(stderr);
-		sql_print_warning("Switching MySQL synchronous replication on "
-				  "again at binlog file %s, position %lu",
-				  log_file_name, (ulong) end_offset);
-
-		innobase_repl_state = 1;
-	}
-
-	/* The position should increase monotonically, since just one thread
-	is sending the binlog to the slave for which we want synchronous
-	replication. Let us check this, and print an error to the .err log
-	if that is not the case. */
-
-	if (innobase_repl_file_name_inited) {
-		cmp = strcmp(log_file_name, innobase_repl_file_name);
-
-		if (cmp < 0
-			|| (cmp == 0 && end_offset < innobase_repl_pos)) {
-
-			ut_print_timestamp(stderr);
-			sql_print_error("MySQL synchronous replication has "
-					"sent binlog to the slave up to file "
-					"%s, position %lu, but now MySQL "
-					"reports that it sent the binlog only "
-					"up to file %s, position %lu",
-					innobase_repl_file_name,
-					(ulong) innobase_repl_pos,
-					log_file_name, (ulong) end_offset);
-		}
-	}
-
-	strcpy(innobase_repl_file_name, log_file_name);
-	innobase_repl_pos = end_offset;
-	innobase_repl_file_name_inited = 1;
-
-	if (innobase_repl_n_wait_threads > 0) {
-		/* Let us check if some of the waiting threads doing a trx
-		commit can now proceed */
-
-		cmp = strcmp(innobase_repl_file_name,
-					innobase_repl_wait_file_name);
-		if (cmp > 0
-			|| (cmp == 0 && innobase_repl_pos
-				>= innobase_repl_wait_pos)) {
-
-			/* Yes, at least one waiting thread can now proceed:
-			let us release all waiting threads with a broadcast */
-
-			can_release_threads = 1;
-
-			innobase_repl_wait_file_name_inited = 0;
-		}
-	}
-
-	pthread_mutex_unlock(&innobase_repl_cond_mutex);
-
-	if (can_release_threads) {
-
-		pthread_cond_broadcast(&innobase_repl_cond);
-	}
-
-	return(0);
-}
-#endif /* HAVE_REPLICATION */
 
 /*********************************************************************
 Rolls back a transaction or the latest SQL statement. */
diff --git a/sql/handler.cc b/sql/handler.cc
index 7b232f343c09bc0e35705812d7406aee31027704..c53ee4153f9f6f9c01a9d53d933308108561b9a9 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -3316,56 +3316,3 @@ int handler::ha_delete_row(const byte *buf)
 #endif
   return 0;
 }
-
-
-#ifdef HAVE_REPLICATION
-/*
-  Reports to table handlers up to which position we have sent the binlog
-  to a slave in replication
-
-  SYNOPSIS
-    ha_repl_report_sent_binlog()
-    thd             thread doing the binlog communication to the slave
-    log_file_name   binlog file name
-    end_offse t     the offset in the binlog file up to which we sent the
-		    contents to the slave
-
-  NOTES
-    Only works for InnoDB at the moment
-
-  RETURN VALUE
-    Always 0 (= success)  
-*/
-
-int ha_repl_report_sent_binlog(THD *thd, char *log_file_name,
-                               my_off_t end_offset)
-{
-#ifdef WITH_INNOBASE_STORAGE_ENGINE
-  innobase_repl_report_sent_binlog(thd, log_file_name, end_offset);
-#endif
-  return 0;
-}
-
-
-/*
-  Reports to table handlers that we stop replication to a specific slave
-
-  SYNOPSIS
-    ha_repl_report_replication_stop()
-    thd              thread doing the binlog communication to the slave
-
-  NOTES
-    Does nothing at the moment
-
-  RETURN VALUE
-    Always 0 (= success)  
-
-  PARAMETERS
-*/
-
-int ha_repl_report_replication_stop(THD *thd)
-{
-  return 0;
-}
-#endif /* HAVE_REPLICATION */
-
diff --git a/sql/handler.h b/sql/handler.h
index d564c7ee28e97073968c2b743e2f0bf67c67d7cc..ef7c206486a0ffc04a6b36ba18262a2f3aa68de8 100644
--- a/sql/handler.h
+++ b/sql/handler.h
@@ -1605,11 +1605,6 @@ void trans_register_ha(THD *thd, bool all, handlerton *ht);
 #define trans_need_2pc(thd, all)                   ((total_ha_2pc > 1) && \
         !((all ? &thd->transaction.all : &thd->transaction.stmt)->no_2pc))
 
-/* semi-synchronous replication */
-int ha_repl_report_sent_binlog(THD *thd, char *log_file_name,
-                               my_off_t end_offset);
-int ha_repl_report_replication_stop(THD *thd);
-
 #ifdef HAVE_NDB_BINLOG
 int ha_reset_logs(THD *thd);
 int ha_binlog_index_purge_file(THD *thd, const char *file);
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index ee0f4e8ad1fe90588c00c979c7587895146583d0..123152c95ecead63bf6995705e2fe3ee458ab9a0 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -961,14 +961,12 @@ bool select_send::send_data(List<Item> &items)
     return 0;
   }
 
-#ifdef WITH_INNOBASE_STORAGE_ENGINE
   /*
     We may be passing the control from mysqld to the client: release the
     InnoDB adaptive hash S-latch to avoid thread deadlocks if it was reserved
     by thd
   */
-    ha_release_temporary_latches(thd);
-#endif
+  ha_release_temporary_latches(thd);
 
   List_iterator_fast<Item> li(items);
   Protocol *protocol= thd->protocol;
@@ -998,12 +996,12 @@ bool select_send::send_data(List<Item> &items)
 
 bool select_send::send_eof()
 {
-#ifdef WITH_INNOBASE_STORAGE_ENGINE
-  /* We may be passing the control from mysqld to the client: release the
-     InnoDB adaptive hash S-latch to avoid thread deadlocks if it was reserved
-     by thd */
-    ha_release_temporary_latches(thd);
-#endif
+  /* 
+    We may be passing the control from mysqld to the client: release the
+    InnoDB adaptive hash S-latch to avoid thread deadlocks if it was reserved
+    by thd 
+  */
+  ha_release_temporary_latches(thd);
 
   /* Unlock tables before sending packet to gain some speed */
   if (thd->lock)
diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc
index 743a0a6b5659f15241bf7164b4d118f28c57b5db..e900d33f743bf5782c0acbc1460ea91beaeb7d8b 100644
--- a/sql/sql_repl.cc
+++ b/sql/sql_repl.cc
@@ -386,9 +386,6 @@ impossible position";
     goto err;
   }
 
-  if (thd->variables.sync_replication)
-    ha_repl_report_sent_binlog(thd, log_file_name, pos);
-
   /*
     We need to start a packet with something other than 255
     to distinguish it from error
@@ -475,9 +472,6 @@ impossible position";
            goto err;
          }
 
-         if (thd->variables.sync_replication)
-           ha_repl_report_sent_binlog(thd, log_file_name, my_b_tell(&log));
-
          /*
            No need to save this event. We are only doing simple reads
            (no real parsing of the events) so we don't need it. And so
@@ -536,9 +530,6 @@ impossible position";
 	goto err;
       }
 
-      if (thd->variables.sync_replication)
-        ha_repl_report_sent_binlog(thd, log_file_name, my_b_tell(&log));
-
       DBUG_PRINT("info", ("log event code %d",
 			  (*packet)[LOG_EVENT_OFFSET+1] ));
       if ((*packet)[LOG_EVENT_OFFSET+1] == LOAD_EVENT)
@@ -652,9 +643,6 @@ impossible position";
 	    goto err;
 	  }
 
-          if (thd->variables.sync_replication)
-            ha_repl_report_sent_binlog(thd, log_file_name, my_b_tell(&log));
-
 	  if ((*packet)[LOG_EVENT_OFFSET+1] == LOAD_EVENT)
 	  {
 	    if (send_file(thd))
@@ -721,18 +709,12 @@ impossible position";
 	goto err;
       }
 
-      if (thd->variables.sync_replication)
-        ha_repl_report_sent_binlog(thd, log_file_name, 0);
-
       packet->length(0);
       packet->append('\0');
     }
   }
 
 end:
-  if (thd->variables.sync_replication)
-    ha_repl_report_replication_stop(thd);
-
   end_io_cache(&log);
   (void)my_close(file, MYF(MY_WME));
 
@@ -744,9 +726,6 @@ end:
   DBUG_VOID_RETURN;
 
 err:
-  if (thd->variables.sync_replication)
-    ha_repl_report_replication_stop(thd);
-
   thd->proc_info = "Waiting to finalize termination";
   end_io_cache(&log);
   /*