diff --git a/scons/crossmingw.py b/scons/crossmingw.py
index cc04622..4a695a4 100644
--- a/scons/crossmingw.py
+++ b/scons/crossmingw.py
@@ -128,6 +128,42 @@
                                     source_scanner=SCons.Tool.SourceFileScanner)
 SCons.Tool.SourceFileScanner.add_scanner('.rc', SCons.Defaults.CScan)
 
+
+
+def compile_without_gstabs(env, sources, c_file):
+    '''This is a hack used to compile some source files without the
+    -gstabs option.
+
+    It seems that some versions of mingw32's gcc (4.4.2 at least) die
+    when compiling large files with the -gstabs option.  -gstabs is
+    related to debug symbols and can be omitted from the effected
+    files.
+
+    This function compiles the given c_file without -gstabs, removes
+    the c_file from the sources list, then appends the new .o file to
+    sources.  Then return the new sources list.
+    '''
+
+    # Modify CCFLAGS to not have -gstabs option:
+    env2 = env.Clone()
+    flags = str(env2['CCFLAGS'])
+    flags = flags.replace("-gstabs", "")
+    env2['CCFLAGS'] = SCons.Util.CLVar(flags)
+    
+    # Build the special-case files:
+    obj_file = env2.SharedObject(c_file)
+
+    # Replace ".cpp" or ".c" with ".o"
+    o_file = c_file.replace(".cpp", ".o")
+    o_file = o_file.replace(".c", ".o")
+
+    # Replace the .c files with the specially-compiled .o file
+    sources.remove(c_file)
+    sources.append(o_file)
+
+    return sources
+
+
 def generate(env):
     mingw_prefix = find(env)
 
@@ -197,5 +233,7 @@
     # Avoid depending on gcc runtime DLLs
     env.AppendUnique(LINKFLAGS = ['-static-libgcc'])
 
+    env.AddMethod(compile_without_gstabs, 'compile_without_gstabs')
+
 def exists(env):
     return find(env)
diff --git a/src/gallium/auxiliary/SConscript b/src/gallium/auxiliary/SConscript
index e00040d..07c420e 100644
--- a/src/gallium/auxiliary/SConscript
+++ b/src/gallium/auxiliary/SConscript
@@ -58,6 +58,10 @@
         'GALLIVM_CPP_SOURCES'
     ])
 
+    if env['toolchain'] == 'crossmingw':
+        # compile lp_bld_misc.cpp without -gstabs option
+        source = env.compile_without_gstabs(source, "gallivm/lp_bld_misc.cpp")
+
 gallium = env.ConvenienceLibrary(
     target = 'gallium',
     source = source,
diff --git a/src/mapi/glapi/SConscript b/src/mapi/glapi/SConscript
index a776474..fdd6579 100644
--- a/src/mapi/glapi/SConscript
+++ b/src/mapi/glapi/SConscript
@@ -74,6 +74,11 @@
         else:
             pass
     
+    if env['toolchain'] == 'crossmingw':
+        # compile these files without -gstabs option
+        glapi_sources = env.compile_without_gstabs(glapi_sources, "glapi_dispatch.c")
+        glapi_sources = env.compile_without_gstabs(glapi_sources, "glapi_getproc.c")
+
     glapi = env.ConvenienceLibrary(
         target = 'glapi',
         source = glapi_sources,
