diff --git a/bob/buildout/envwrapper.py b/bob/buildout/envwrapper.py
index e21020ebbe2453022b69306f26d41e72f5eef4ae..4ceb9b601469c060cf89f016bdaeaffa0446aa8b 100644
--- a/bob/buildout/envwrapper.py
+++ b/bob/buildout/envwrapper.py
@@ -65,6 +65,14 @@ class EnvironmentWrapper(object):
         if value:
           self.environ[key] = value.strip(sep)
 
+    def __prepend_to_environ(key, value, sep=' '):
+      if self.environ.get(key):
+        if value:
+          self.environ[key] = value.strip(sep) + sep + self.environ[key]
+      else:
+        if value:
+          self.environ[key] = value.strip(sep)
+
     # joins all paths, respecting potential environment variables set by the
     # user, with priority
     __remove_environ('BOB_PREFIX_PATH')
@@ -92,11 +100,10 @@ class EnvironmentWrapper(object):
         __remove_environ(key)
         __append_to_environ(key, internal)
         __append_to_environ(key, saved)
-      __append_to_environ(key, os.environ.get(key))
+      __prepend_to_environ(key, os.environ.get(key))
 
-    # for these environment variables, values set on the environment come last
-    # so they can override, values set on the buildout recipe or our internal
-    # settings
+    # for these environment variables, values set on the environment come first
+    # so we can override with our debug flag
     if cflags is not None:
       _order_flags('CFLAGS', cflags)
       _order_flags('CXXFLAGS', cflags)
diff --git a/bob/buildout/test_envwrapper.py b/bob/buildout/test_envwrapper.py
index 15052e6abf62587f0783b05c997af59346d20555..993ac8f90937b38fbb73a2ff6d59102f56955969 100644
--- a/bob/buildout/test_envwrapper.py
+++ b/bob/buildout/test_envwrapper.py
@@ -227,7 +227,7 @@ def test_preserve_user():
 
   nose.tools.eq_(len(os.environ) - len(before), 1)
 
-  assert os.environ['CFLAGS'].endswith('-BUILDOUT-TEST-STRING')
+  assert os.environ['CFLAGS'].startswith('-BUILDOUT-TEST-STRING')
 
   e.unset()
   for key in before: