Index: file.c
===================================================================
--- file.c	(revision 333)
+++ file.c	(revision 334)
@@ -146,25 +146,27 @@
 
 char *raydium_file_load(char *filename)
 {
-struct stat st;
+int len;
 FILE *fp;
 char *mem;
 
-if(stat(filename,&st)<0)
-    return NULL;
-
 fp=raydium_file_fopen(filename,"rb");
 if(!fp)
     return NULL;
 
-mem=malloc(st.st_size);
+fseek(fp,0,SEEK_END);
+len=ftell(fp);
+mem=malloc(len+1);
 if(!mem)
     {
     fclose(fp);
     return NULL;
     }
 
-if(fread(mem,st.st_size,1,fp)!=1)
+mem[len]=0;
+fseek(fp,0,SEEK_SET);
+
+if(fread(mem,len,1,fp)!=1)
     {
     fclose(fp);
     free(mem);