diff -Nur eduke32_src_20080610.old/build/src/dynamicgtk.c eduke32_src_20080610/build/src/dynamicgtk.c --- eduke32_src_20080610.old/build/src/dynamicgtk.c 2008-05-09 18:29:36.000000000 +0300 +++ eduke32_src_20080610/build/src/dynamicgtk.c 2008-06-20 23:36:29.000000000 +0300 @@ -20,7 +20,7 @@ if (handle) return 1; - handle = dlopen("libgtk-x11-2.0.so", RTLD_NOW|RTLD_GLOBAL); + handle = dlopen("libgtk-x11-2.0.so.0", RTLD_NOW|RTLD_GLOBAL); if (!handle) return -1; memset(&dynamicgtksyms, 0, sizeof(dynamicgtksyms)); diff -Nur eduke32_src_20080610.old/build/src/engine.c eduke32_src_20080610/build/src/engine.c --- eduke32_src_20080610.old/build/src/engine.c 2008-06-11 00:05:50.000000000 +0300 +++ eduke32_src_20080610/build/src/engine.c 2008-06-20 23:38:32.000000000 +0300 @@ -2459,8 +2459,11 @@ { wallnum = thewall[z]; nextsectnum = wall[wallnum].nextsector; - if (dastat == 0) j = sector[nextsectnum].ceilingstat; - else j = sector[nextsectnum].floorstat; + if (nextsectnum >= 0) // Fixes an "invisible" crash which doesn't always occur. - NY00123 + { + if (dastat == 0) j = sector[nextsectnum].ceilingstat; + else j = sector[nextsectnum].floorstat; + } if ((nextsectnum < 0) || (wall[wallnum].cstat&32) || ((j&1) == 0)) {