Well, here's the code (stripped down to 390 lines - the essential stuff - hehehe

)
Maybe you can see what causes the problem?
Rem INTRO
FLUSH VIDEO MEMORY
HIDE MOUSE
DISABLE ESCAPEKEY
DISABLE SYSTEMKEYS
load sound "Sounds\intro.wav", 20
Load animation "Media\BRIXOID_Intro.avi", 1
PLAY SOUND 20
PLAY ANIMATION 1, 80, 60
wait 4000
cls
DELETE ANIMATION 1
Rem ***** Main Source File *****
AUTOCAM OFF
if check display mode (1024,768,32) = 1 : SET DISPLAY MODE 1024, 768, 32, 1 : endif
sync on : `SYNC RATE 85
KD SETANISOTROPY 16
randomize timer()
set camera fov 360.19566333
set camera range 500, 70000
set ambient light 60
camz#=-6488
position camera -2,-3,camz#
ink rgb(30,245,30), 0
SET TEXT SIZE 32
`The game variables
score=0 : lives = 5 : lifeholder = 0 : brixnumbre = 0
direction$="none" : angle$="none" : GO = 0
ballspeed#=0.125 : paddlespeed#=0.20 : lazer_speed# = 0.0003
global ball# : global bally# : global paddle : global ball
T=Timer()/1000 : global LEVELID : global brixval : global brix
global filename$
links$ = "left"
rechts$ = "right"
einde = 0
RED = 512 : GREEN = 255 : BLUE = 512
`Data array for the screen
Type Brickstype
kind as byte ` Type of brick
state as byte ` Brick hit and hidden or not
Endtype
dim map(24,20) as Brickstype ` max numbre of horizontal/vertical brix possible
`Data array for the SCORETABLE
type Scores
Name as string
Score as integer
endtype
`set some random NAMES and SCORES
dim scorelist(9) as Scores
scorelist(0).Name="Chris Van Wijmeersch" : scorelist(0).Score=9999999
scorelist(1).Name="Pol Iep" : scorelist(1).Score=8888888
scorelist(2).Name="Boss Kabouters" : scorelist(2).Score=7777777
scorelist(3).Name="George Binorm" : scorelist(3).Score=6666666
scorelist(4).Name="Ringeau Ztar" : scorelist(4).Score=5555555
scorelist(5).Name="Hans Tereo" : scorelist(5).Score=4444444
scorelist(6).Name="Abra Cadabra" : scorelist(6).Score=3333333
scorelist(7).Name="Alex Terior" : scorelist(7).Score=2222222
scorelist(8).Name="Maxim Al" : scorelist(8).Score=1111111
scorelist(9).Name="Mi Nimum" : scorelist(9).Score=0000000
`For parsing data strings
type var_type
i as integer
s as string
f as float
u as string
endtype
dim var(32) as var_type
Rem Load Images and Textures, models and videos, SOUNDS and MUSICS and SETUP EXPLOSIONS
gosub init_explosion_variables
gosub prepare_explosions
Gosub _Load_Images
Gosub _Load_musics
Gosub _Load_sounds
Gosub _Load_and_create_objects
gosub Main_menu : DELETE SOUND 20
load dll "Kernel32.dll",1
do
`CHECK IF ALL BRIX HAVE BEEN DESTROYED and LOAD THE NEXT LEVEL.
if brix =< 0 then brixval = 0 : Next_level()
`________________________________________________________________________________
`CHECK if PLAYER PRESSED 'P' to PAUSE GAME
if keystate(25)=1 or keystate(197)=1: oldtime=timer(): gosub paused : endif
if OBJECT EXIST(550) = 1 then DELETE OBJECT 550
if IMAGE EXIST(40) = 1 then DELETE IMAGE 40
`MAIN MENU CHECKING
if escapekey() = 1 : oldtime = timer() : gosub Main_menu : endif
for P = 560 to 567
if OBJECT EXIST(P) = 1 then DELETE OBJECT P
next P
for P = 50 to 57
if IMAGE EXIST(P) = 1 then DELETE IMAGE P
next P
if SOUND EXIST(70) then DELETE SOUND 70
`_________________________________________________________________________________
`...GAME STUFF...
call dll 1,"Sleep",5
update_explosions()
SYNC
loop
`_____________________________________________________________________________________
`PAUSE ROUTINE
paused:
`CREATE the PAUSE SCREEN
make object plain 550, 15, 9
load image "Media\Paused1.png", 40
TEXTURE OBJECT 550, 40
POSITION OBJECT 550, -2.2, -2.2, -16
do
if spacekey()=1 then return
sync
loop
`_____________________________________________________________________________________
`MAIN MENU
Main_menu:
`CREATE the MENU SCREEN
load image "Media\Main_menu.png", 50
MAKE OBJECT plain 560, 30, 22.2
TEXTURE OBJECT 560, 50
POSITION OBJECT 560, -2.2, -3, -45
load image "Media\New_game.png", 51
MAKE OBJECT plain 561, 4, 2
TEXTURE OBJECT 561, 51
POSITION OBJECT 561, -2.2, 1, -46
load image "Media\Options.png", 52
MAKE OBJECT plain 562, 4, 2
TEXTURE OBJECT 562, 52
POSITION OBJECT 562, -2.2, -1, -46
load image "Media\Highscores.png", 53
MAKE OBJECT plain 563, 4, 2
TEXTURE OBJECT 563, 53
POSITION OBJECT 563, -2.2, -3, -46
load image "Media\Help.png", 54
MAKE OBJECT plain 564, 4, 2
TEXTURE OBJECT 564, 54
POSITION OBJECT 564, -2.2, -5, -46
load image "Media\Credits.png", 55
MAKE OBJECT plain 565, 4, 2
TEXTURE OBJECT 565, 55
POSITION OBJECT 565, -2.2, -7, -46
load image "Media\Exit.png", 56
MAKE OBJECT plain 566, 4, 2
TEXTURE OBJECT 566, 56
POSITION OBJECT 566, -2.2, -9, -46
load image "Media\Hand.png", 57
MAKE OBJECT plain 567, 2, 2
TEXTURE OBJECT 567, 57
POSITION OBJECT 567, -5.5, 1, -46
choice = 1
load sound "Sounds\buzz.wav", 70
if sound exist(71) = 0 then load sound "Sounds\selected.wav", 71
for S = 1 to 11
STOP SOUND S
next S
if sound exist(30) = 1 then delete sound 30
if sound exist(50) = 0 then load sound "Music\main.wav", 50
loop sound 50 : SET SOUND VOLUME 50, 92
do
lastup = lu : lastdown = ld
lu = upkey() : ld = downkey()
if ld = 1 and lastdown = 0 then choice = choice + 1 : PLAY SOUND 70
if lu = 1 and lastup = 0 then choice = choice - 1 : PLAY SOUND 70
if choice = 1 then POSITION OBJECT 567, -5.5, 1, -46
if choice = 2 then POSITION OBJECT 567, -5.5, -1, -46
if choice = 3 then POSITION OBJECT 567, -5.5, -3, -46
if choice = 4 then POSITION OBJECT 567, -5.5, -5, -46
if choice = 5 then POSITION OBJECT 567, -5.5, -7, -46
if choice = 6 then POSITION OBJECT 567, -5.5, -9, -46
if choice > 6 then choice = 1
if choice < 1 then choice = 6
if choice = 1 and returnkey() = 1 : gosub New_GAME : PLAY SOUND 71
filename$="Levels\Level"+right$("000"+str$(LEVELID),3)+".bri"
if file exist(filename$)=1
load(filename$) : make_bricks() : brix = brixval : wait 300 : return
else LEVELID=0
endif
endif
if choice = 2 and returnkey() = 1 : gosub Options_panel : PLAY SOUND 71 : endif
if choice = 6 and returnkey() = 1 then load sound "Sounds\ended.wav", 77 : STOP SOUND 50 : play sound 77 : wait 1000 : end
sync
loop
`_____________________________________________________________________________________
New_GAME:
`Stick = 1
gosub Vault_routine
angle$ = "none" : direction$ = "up"
score=0 : lives = 5 : lifeholder = 0
ballspeed#=0.125 : paddlespeed#=0.20 : lazer_speed# = 0.0003
T=Timer()/1000 : links$ = "left" : rechts$ = "right" : einde = 0
global LEVELID = 1
Pscale = 0 : SCALE OBJECT paddle, 210, 210, 70
Fire = 0 : HIDE OBJECT 640
Pshrink = 0 : SCALE OBJECT paddle, 210, 210, 70
Inverse = 0 : links$ = "left" : rechts$ = "right"
SPEEDY = 0 : lazer_speed# = 0.0003
POSITION OBJECT paddle, -4.5, -10.4, -0.3
position object ball,-4.5,-8.5,0
POSITION OBJECT 505, -15.36, -10.4, -5 `POSITION_LEFT-BOT_FRAME
POSITION OBJECT 506, -15.36, -10.4, -5 `POSITION_LEFT-BOT_DIAMOND
POSITION OBJECT 507, 6.34, -10.4, -5 `POSITION_RIGHT-BOT_FRAME
POSITION OBJECT 508, 6.34, -10.4, -5 `POSITION_RIGHT-BOT_DIAMOND
POSITION OBJECT 530, -4.5, -10.4, 0 `POSITION THE GREEN LAZER
POSITION OBJECT 640, -4.5, -10.4, -0.3 `POSITION THE CANON
For N = 700 to 711
delete object N
Next N
if SOUND EXIST(50) = 1 then DELETE SOUND 50
if SOUND EXIST(30) = 0 then LOAD SOUND "Music\soft_rock.wav", 30
LOOP SOUND 30 : SET SOUND VOLUME 30, 90
return
`_____________________________________________________________________________________
function Next_level()
update_explosions()
`Stick = 1
brix = 1
INC LEVELID
clear_map()
angle$ = "none" : direction$ = "up"
POSITION OBJECT paddle, -4.5, -10.4, -0.3
position object ball,-4.5,-8.5,0
POSITION OBJECT 505, -15.36, -10.4, -5 `POSITION_LEFT-BOT_FRAME
POSITION OBJECT 506, -15.36, -10.4, -5 `POSITION_LEFT-BOT_DIAMOND
POSITION OBJECT 507, 6.34, -10.4, -5 `POSITION_RIGHT-BOT_FRAME
POSITION OBJECT 508, 6.34, -10.4, -5 `POSITION_RIGHT-BOT_DIAMOND
POSITION OBJECT 530, -4.5, -10.4, 0 `POSITION THE GREEN LAZER
POSITION OBJECT 640, -4.5, -10.4, -0.3 `POSITION THE CANON
For N = 700 to 711
if object exist(N) = 1 then delete object N
Next N
filename$="Levels\Level"+right$("000"+str$(LEVELID),3)+".bri"
if file exist(filename$)=1
load(filename$) : make_bricks() : brix = brixval `: endfunction
else LEVELID=0
endif
endfunction
`_____________________________________________________________________________________
Vault_routine:
for T = 1000 to 1300
DELETE OBJECT T
NEXT T
clear_map()
remstart
Load image "Textures\vault.png", 80
MAKE OBJECT plane 590, 19.5, 16
TEXTURE OBJECT 590, 80
POSITION OBJECT 590, -4.5, 0, -1
remend
return
`_____________________________________________________________________________________
Options_panel:
Load image "Media\Opt_panel2.png", 60
MAKE OBJECT plane 580, 30, 22.5
TEXTURE OBJECT 580, 60
POSITION OBJECT 580, -2.2, -3, -50
do
lastup = lu : lastdown = ld
lu = upkey() : ld = downkey()
if ld = 1 and lastdown = 0 then choice2 = choice2 + 1 : PLAY SOUND 70
if lu = 1 and lastup = 0 then choice2 = choice2 - 1 : PLAY SOUND 70
if spacekey() = 1 then delete image 60 : delete object 580 : return
sync
loop
`_____________________________________________________________________________________
`prepare the variables for the explosion system
init_explosion_variables:
`set the first object used by the system
global ex_first = 50000
`set the max number of objects the system can use
global ex_max = 10
`a counter to incerement throught he objects
global ex_counter = 0
`an array to determine if the object / explosion is alive
global dim ex_alive(ex_max)
`the curent frame of the explosion is held in an array
global dim ex_frame(ex_max)
`the first image number of the current explosion effect
global dim ex_first_image(ex_max)
`a frame skip delay to slow down the animation
global dim ex_delay(ex_max)
return
`-------------------------------------------------------------------------------------
`RESET ROUTINE
function _reset_to_NORMAL()
paddle = 300
ball = 301
POSITION OBJECT paddle, -4.5, -10.4, -0.3
position object ball,-4.5,-8.5,0
POSITION OBJECT 505, -15.36, -10.4, -5 `POSITION_LEFT-BOT_FRAME
POSITION OBJECT 506, -15.36, -10.4, -5 `POSITION_LEFT-BOT_DIAMOND
POSITION OBJECT 507, 6.34, -10.4, -5 `POSITION_RIGHT-BOT_FRAME
POSITION OBJECT 508, 6.34, -10.4, -5 `POSITION_RIGHT-BOT_DIAMOND
POSITION OBJECT 530, -4.5, -10.40, 0
POSITION OBJECT 640, -4.5, -10.4, -0.3 `CANON
endfunction
`-------------------------------------------------------------------------------------
function make_bricks()
obj=1000
for y=0 to 20 `max numbre of vertical brix possible
for x=0 to 24 `max numbre of horizontal brix possible
kind=map(x,y).kind
if kind>0
if object exist(obj)=1 then delete object obj
INSTANCE object obj, 0 + kind `Make an instance for faster FPS
position object obj,(x*0.75)-13.50,(y*0.5)-4.50, 0
inc obj,1
endif
next x
next y
`Now clear out the old objects
while object exist(obj)=1
delete object obj
inc obj,1
endwhile
endfunction
`-------------------------------------------------------------------------------------
function clear_map()
for y=0 to 20 `max numbre of vertical brix possible
for x=0 to 24 `max numbre of horizontal brix possible
map(x,y).kind=0
next x
next y
make_bricks() : brixval = 0
endfunction
`-------------------------------------------------------------------------------------
function load(fn$)
brixval = 0 `reset to zero upon new level loading
if file exist(fn$)=0 then exitfunction
open to read 1,fn$
while file end(1)=0
read string 1,i$
if i$<>""
if left$(i$,1)<>"`" and left$(i$,1)<>"'" and left$(i$,1)<>";"
parse(i$)
endif
endif
endwhile
close file 1
endfunction
`-------------------------------------------------------------------------------------
function parse(i$)
`tokenize string into var() array for analysis
tokenize(i$)
com$=var(0).u
x=var(1).i
y=var(2).i
select com$
case "MAP" : inc brixval, 1
map(x,y).kind=var(3).i
endcase
endselect
endfunction
`-------------------------------------------------------------------------------------
`...some more functions related to gameplay, graphics and highscore...(no syncs here)
Thanks
Slayer rules!!! Yeaaah, man!