diff --git a/src/syncterm/term.c b/src/syncterm/term.c
index 97fe1d710894f6684ee2cada9f5640f2929313c2..50faf7a915968d9a2e76108aed8c46f07d10d993 100644
--- a/src/syncterm/term.c
+++ b/src/syncterm/term.c
@@ -40,7 +40,7 @@ void scrollup(void)
 	term.backpos++;
 	if(term.backpos>backlines) {
 		memmove(term.scrollback,term.scrollback+term.width*2,term.width*2*(backlines-1));
-		term.packpos--;
+		term.backpos--;
 	}
 	gettext(term.x+1,term.y+1,term.x+term.width,term.y+1,term.scrollback+(term.backpos-1)*term.width*2);
 	buf=(char *)malloc(term.width*(term.height-1)*2);
@@ -92,7 +92,7 @@ void clearscreen(char attr)
 
 	term.backpos+=term.height;
 	if(term.backpos>backlines) {
-		memmove(term.scrollback,term.scrollback+term.width*2*(term.backpos-term.backlines),term.width*2*(backlines-(term.backpos-term.backlines)));
+		memmove(term.scrollback,term.scrollback+term.width*2*(term.backpos-backlines),term.width*2*(backlines-(term.backpos-backlines)));
 		term.backpos=backlines;
 	}
 	gettext(term.x+1,term.y+1,term.x+term.width,term.y+term.height,term.scrollback+(term.backpos-term.height)*term.width*2);
@@ -516,7 +516,7 @@ void doterm(void)
 		i=rlogin_recv(ch,1,100);
 		switch(i) {
 			case -1:
-				uifcmsg("Disconnected");
+				uifcmsg("Disconnected","`Disconnected`\n\nRemote host dropped connection");
 				return;
 			case 1:
 				if(term.sequence) {
@@ -528,7 +528,7 @@ void doterm(void)
 				}
 				else if (term.music) {
 					strcat(term.musicbuf,ch);
-					if(ch==14)
+					if(ch[0]==14)
 						play_music();
 				}
 				else {
diff --git a/src/syncterm/term.h b/src/syncterm/term.h
index 012995eb72ba13093cce4ecd25a7254c7c43e2b5..0ded0c68114ecb5fb2b12adee496bab874c07197 100644
--- a/src/syncterm/term.h
+++ b/src/syncterm/term.h
@@ -14,6 +14,7 @@ struct terminal {
 	int save_ypos;
 	char	escbuf[1024];
 	int	sequence;
+	char	musicbuf[1024];
 	int music;
 	char *scrollback;
 	int backpos;
diff --git a/src/syncterm/window.c b/src/syncterm/window.c
index b9ca414da601062dbd667dd309dd7634ae83b371..f1026a875ee0b8216e9de311e0311d8bcdce6891 100644
--- a/src/syncterm/window.c
+++ b/src/syncterm/window.c
@@ -21,7 +21,7 @@ int drawwin(void)
 	term.x=(txtinfo.screenwidth-term.width)/2;
 	term.y=(txtinfo.screenheight-term.height)/2;
 	if((winbuf=(char *)malloc(txtinfo.screenheight*txtinfo.screenwidth*2))==NULL) {
-		uifcmsg("Cannot allocate memory for terminal buffer".	"`Memory error`\n\n"
+		uifcmsg("Cannot allocate memory for terminal buffer",	"`Memory error`\n\n"
 																"Either your system is dangerously low on resources or your\n"
 																"window is farking huge!");
 		return(-1);