diff --git a/controls/edit.c b/controls/edit.c
index d3de142..cd7400b 100644
--- a/controls/edit.c
+++ b/controls/edit.c
@@ -199,7 +199,7 @@
 static void	EDIT_GetLineRect(EDITSTATE *es, INT line, INT scol, INT ecol, LPRECT rc);
 static void	EDIT_InvalidateText(EDITSTATE *es, INT start, INT end);
 static void	EDIT_LockBuffer(EDITSTATE *es);
-static BOOL	EDIT_MakeFit(EDITSTATE *es, UINT size, BOOL honor_limit);
+static BOOL	EDIT_MakeFit(EDITSTATE *es, UINT size);
 static BOOL	EDIT_MakeUndoFit(EDITSTATE *es, UINT size);
 static void	EDIT_MoveBackward(EDITSTATE *es, BOOL extend);
 static void	EDIT_MoveEnd(EDITSTATE *es, BOOL extend);
@@ -1716,17 +1716,11 @@
  *	EDIT_MakeFit
  *
  * Try to fit size + 1 characters in the buffer.
- * Constrain to limits if honor_limit is TRUE.
  */
-static BOOL EDIT_MakeFit(EDITSTATE *es, UINT size, BOOL honor_limit)
+static BOOL EDIT_MakeFit(EDITSTATE *es, UINT size)
 {
 	HLOCAL hNew32W;
 
-	if ((honor_limit) && (es->buffer_limit > 0) && (size > es->buffer_limit)) {
-		EDIT_NOTIFY_PARENT(es, EN_MAXTEXT, "EN_MAXTEXT");
-		return FALSE;
-	}
-
 	if (size <= es->buffer_size)
 		return TRUE;
 
@@ -2896,6 +2890,7 @@
 	UINT s;
 	UINT e;
 	UINT i;
+	UINT size;
 	LPWSTR p;
 	HRGN hrgn = 0;
 
@@ -2910,7 +2905,15 @@
 
 	ORDER_UINT(s, e);
 
-	if (!EDIT_MakeFit(es, tl - (e - s) + strl, honor_limit))
+	/* Issue the EN_MAXTEXT notification and continue with replacing text
+	 * such that buffer limit is honored. */
+	size = tl - (e - s) + strl;
+	if ((honor_limit) && (es->buffer_limit > 0) && (size > es->buffer_limit)) {
+		EDIT_NOTIFY_PARENT(es, EN_MAXTEXT, "EN_MAXTEXT");
+		strl = es->buffer_limit - (tl - (e-s));
+	}
+
+	if (!EDIT_MakeFit(es, tl - (e - s) + strl))
 		return;
 
 	if (e != s) {
