--- broken/SConstruct	2013-06-18 22:33:39.635161061 +0200
+++ new/SConstruct	2013-06-18 22:33:25.283258475 +0200
@@ -101,29 +101,9 @@
         }
         static_libs = []
 
-        params = output.split()
-        for arg in params:
-            if arg[0] != '-':
-                static_libs.append(arg)
-            elif arg[:2] == '-L':
-                flags['LIBPATH'].append(arg[2:])
-            elif arg[:2] == '-l':
-                flags['LIBS'].append(arg[2:])
-            elif arg[:2] == '-I':
-                flags['CPPPATH'].append(arg[2:])
-            elif arg[:4] == '-Wa,':
-                flags['ASFLAGS'].append(arg)
-            elif arg[:4] == '-Wl,':
-                flags['LINKFLAGS'].append(arg)
-            elif arg[:4] == '-Wp,':
-                flags['CPPFLAGS'].append(arg)
-            elif arg == '-pthread':
-                flags['CCFLAGS'].append(arg)
-                flags['LINKFLAGS'].append(arg)
-            else:
-                flags['CCFLAGS'].append(arg)
-        apply(env.Append, (), flags)
-        return static_libs
+        flags = env.ParseFlags(output)
+        env.MergeFlags(flags, unique=0)
+        return flags['LIBS']
 
     if function is None:
         function = parse_conf
