diff --git a/src/_xargon.cpp b/src/_xargon.cpp
old mode 100644
new mode 100755
index 42f7bfb..3659175
--- a/src/_xargon.cpp
+++ b/src/_xargon.cpp
@@ -284,7 +284,7 @@ void loadcfg (void) {
 void savecfg (void) {
 	int cfgfile;
 
-	cfgfile=_creat (cfgfname,0);
+	cfgfile=_creat (cfgfname,0644);
 	if (cfgfile>=0) {
 		write (cfgfile,&hiname,sizeof (hiname));
 		write (cfgfile,&hiscore,sizeof(hiscore));
@@ -514,8 +514,8 @@ int getline (int n, char *line, int dospace) {
 	char ch;
 
 	while ((a<n)&&(c<textmsglen)) a+=(*(textmsg+c++))==13;
-	while ((*(textmsg+c)<32)&&(*(textmsg+c)!=13)) c++;
-	if ((*(textmsg+c)>='0')&&(*(textmsg+c)<='7')) {
+	while ((c<textmsglen)&&(*(textmsg+c)<32)&&(*(textmsg+c)!=13)) c++;
+	if ((c<textmsglen)&&(*(textmsg+c)>='0')&&(*(textmsg+c)<='7')) {
 		ourcolor=*(textmsg+c++)-'0';
 		};
 	a=0;
@@ -800,8 +800,8 @@ void printhi (int newhi) {
 	for (c=0; c<numhighs; c++) wprint (&hiwin.inside,8,20+c*7,2,hiname[c]);
 	fontcolor (&hiwin.inside,2,-1);
 	for (c=0; c<numhighs; c++) {
-		wprint (&hiwin.inside,120-(strlen(s)*6),20+c*7,2,
-			ultoa (hiscore[c],s,10));
+		ultoa (hiscore[c],s,10);
+		wprint (&hiwin.inside,120-(strlen(s)*6),20+c*7,2,s);
 		};
 
 	if (newhi) {
@@ -1165,6 +1165,14 @@ void play (int demoflg) {
 	setpagemode (1);
 	dolevelsong();
 	enable();
+//SEB hack => force full refresh to avoid smal glitch at start map
+        setpagemode(1);
+        drawstats();
+        drawboard();
+        pageflip(); setpagemode(0);
+        setpagemode(1);
+        moddrawboard();
+//SEB end of hack
 
 	do {
 //		enable();
diff --git a/src/gamectrl.cpp b/src/gamectrl.cpp
old mode 100644
new mode 100755
index 8f99d36..4f2279a
--- a/src/gamectrl.cpp
+++ b/src/gamectrl.cpp
@@ -144,7 +144,7 @@ getNextEvent:
 	if (SDL_PollEvent(&event)) {
 		//key=k_read();
 		//if ((key==0)|(key==1)|(key==2)) key=k_read();
-		int newkey, newscan = 0;
+		int newkey = 0, newscan = 0;
 		switch (event.type) {
 			case SDL_KEYUP:
 			case SDL_KEYDOWN:
@@ -154,13 +154,16 @@ getNextEvent:
 					case SDLK_UP:       newkey = k_up;      newscan = scan_cursorup; break;
 					case SDLK_DOWN:     newkey = k_down;    newscan = scan_cursordown; break;
 					case SDLK_PAGEUP:   newkey = k_pgdown;  break;
-					case SDLK_PAGEDOWN: newkey = k_pgup;    break;
+					//case SDLK_PAGEDOWN: 
+					case SDLK_HOME:		newkey = k_pgup;    break;	//Pandora
 					case SDLK_F1:       newkey = k_f1;      newscan = scan_f1; break;
 					case SDLK_F7:       newkey = k_f7;      break;
 					case SDLK_SPACE:    newkey = ' ';       newscan = scan_space; break;
+					case SDLK_END:      newkey = ' ';       newscan = scan_space; break;	//PANDORA
 					case SDLK_ESCAPE:   newkey = escape;    newscan = scan_esc; break;
 					case SDLK_RSHIFT:   newscan = scan_rshift; break;
 					case SDLK_LSHIFT:   newscan = scan_lshift; break;
+					case SDLK_PAGEDOWN:								//PANDORA
 					case SDLK_RCTRL:
 					case SDLK_LCTRL:    newscan = scan_ctrl; break;
 					case SDLK_RALT:
@@ -203,7 +206,7 @@ getNextEvent:
 		};
 	k_status();
 	fire1=k_shift;
-	fire2=k_alt|k_ctrl;
+	fire2=k_alt|k_ctrl|keydown[0][scan_ctrl];
 	if (((dx1==0)&&(dy1==0))&&(joyflag)) {
 		readjoy (&x1,&y1);
 		xs=(x1-joyxc);
@@ -305,7 +308,7 @@ void macrecend (void) {
 	int machand;
 
 	if (!macrecord) return;
-	machand=_creat (macfname,0);
+	machand=_creat (macfname,0644);
 	if (machand>=0) {
 		_write (machand,macptr,macofs);
 		_close (machand);
diff --git a/src/port.cpp b/src/port.cpp
old mode 100644
new mode 100755
index 94079e3..d86377f
--- a/src/port.cpp
+++ b/src/port.cpp
@@ -272,7 +272,7 @@ void scrollvp (vptype *vp,int xd,int yd)
 {
 	// TODO: This function is required to scroll message boxes, but it doesn't
 	// seem to be needed for in-game scrolling, and seems to slow things down.
-	printf("todo: scrollvp(%d,%d)\n", xd, yd);
+	//printf("todo: scrollvp(%d,%d)\n", xd, yd);
 
 	if (SDL_MUSTLOCK(::screen)) {
 		if (SDL_LockSurface(::screen) < 0) return;
@@ -515,7 +515,7 @@ void fillAudioBuffer(void *udata, Uint8 *stream, int len)
 						::opl.song_pos += 2;
 						break;
 				}
-				::opl.delay_remaining = nextDelay * (48000/512) / 1000;
+				::opl.delay_remaining = nextDelay * (44100/512) / 1000;
 				if (::opl.song_pos >= ::opl.song_len) ::opl.song_pos = 0; // loop
 			}
 #endif
@@ -533,7 +533,7 @@ void fillAudioBuffer(void *udata, Uint8 *stream, int len)
 	// Play the next bit of the sound effect if needed
 	if (::sound.len > 0) {
 		// Take U8 sound at any rate, convert to S16 48kHz and mix with music
-		double ratio = sound.samplerate / 48000.0;
+		double ratio = sound.samplerate / 44100.0;
 		for (int i = 0; i < bufvalid_samples; i++) {
 			int j = ::sound.pos + (int)(i * ratio);
 			if (j >= ::sound.len) break;
@@ -568,7 +568,7 @@ void StartWorx(void)
 	::opl.mutex = SDL_CreateMutex();
 
 	SDL_AudioSpec wanted;
-	wanted.freq = 48000;
+	wanted.freq = 44100;
 	wanted.format = AUDIO_S16;
 	wanted.channels = 2;
 	wanted.samples = 2048;
@@ -582,9 +582,12 @@ void StartWorx(void)
 
 	::opl.sh = new SampleHandler();
 	::opl.chip = new DBOPL::Handler();
-	::opl.chip->Init(48000);
+	::opl.chip->Init(44100);
 	SDL_PauseAudio(0);
 
+	//Hide mouse...
+	SDL_ShowCursor(SDL_DISABLE);
+
 	return;
 }
 
diff --git a/src/shapeman.cpp b/src/shapeman.cpp
old mode 100644
new mode 100755
index 2a1d7fb..ec9a0f7
--- a/src/shapeman.cpp
+++ b/src/shapeman.cpp
@@ -14,7 +14,7 @@
 #include <string.h>
 #include <math.h>
 //#include <mem.h>
-#include "include/gr.h";
+#include "include/gr.h"
 
 extern void rexit (int num);
 
