diff --git a/ChangeLog b/ChangeLog
index 4fdab1867f3438c830245c03a876247e2ffc33d0..b57d3319ecca16aacfd9d988baed0853a9c2da57 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,10 @@ CVS code -
   do_cut_text()
 	- marked text cut fixes (Rocco) (Fixes bug #54).
 - nano.c:
+  do_delete()
+	- Added check for current->next == fileptr, as we have a magic
+	  line code again, fixes sillyness at the end of the last line
+	  before the magic line (reported by J.A. Neitzel).
   do_justify()
 	- If the keystroke after the justify is not the unjustify key,
 	  blank the statsubar (bug reported by Neil Parks).
diff --git a/nano.c b/nano.c
index 76812b60080b52a7b330ee7e6793dc0d48c0bc04..d133ab4d9a2bd0038f689fb737575c3d0d7ed599 100644
--- a/nano.c
+++ b/nano.c
@@ -1080,7 +1080,9 @@ int do_delete(void)
 
 	align(&current->data);
 
-    } else if (current->next != NULL) {
+    /* Now that we have a magic lnie again, we can check for both being
+       on the line before filebot as well as at filebot */
+    } else if (current->next != NULL && current->next != filebot) {
 	current->data = nrealloc(current->data,
 				 strlen(current->data) +
 				 strlen(current->next->data) + 1);
@@ -1096,7 +1098,7 @@ int do_delete(void)
 	delete_node(foo);
 	update_line(current, current_x);
 
-	/* Please see the comment in do_basckspace if you don't understand
+	/* Please see the comment in do_backspace if you don't understand
 	   this test */
 	if (current == filebot && strcmp(current->data, "")) {
 	    new_magicline();