diff --git a/m4/ipopt.m4 b/m4/ipopt.m4
index c10c23ef5c012e0346b320331b370374fd133892..5a5fe335545b526dd8a2cbd6d3cf33dd9db4bebf 100644
--- a/m4/ipopt.m4
+++ b/m4/ipopt.m4
@@ -29,15 +29,10 @@ AS_IF([test x$with_ipopt != xno], [
     ])
 
     IPOPT_LIB_PATH="$IPOPTROOT/lib"
-    IPOPT_INCLUDE_PATH="$IPOPTROOT/include"
-
-    LDFLAGS="$LDFLAGS -L$IPOPT_LIB_PATH"
-    CPPFLAGS="$CPPFLAGS -I$IPOPT_INCLUDE_PATH"
 
     # Check whether ipopt is installed at all
     export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$IPOPT_LIB_PATH/pkgconfig"
     PKG_CHECK_EXISTS([ipopt], [
-	IPOPT_CPPFLAGS="-I$IPOPT_INCLUDE_PATH"
 	HAVE_IPOPT="1"
     ], [ dnl default rule would fail
 	AC_MSG_WARN([IPOpt not found in $IPOPTROOT])
@@ -45,7 +40,9 @@ AS_IF([test x$with_ipopt != xno], [
 
     AC_LANG_PUSH([C++])
 
-    CPPFLAGS="$IPOPT_CPPFLAGS"
+    LDFLAGS="$LDFLAGS -L$IPOPT_LIB_PATH"
+    IPOPT_CPPFLAGS="-I$IPOPTROOT/include"
+    CPPFLAGS="$CPPFLAGS $IPOPT_CPPFLAGS"
 
     # if header is found...
     AS_IF([test x$HAVE_IPOPT = x1], [
@@ -81,6 +78,7 @@ AS_IF([test x$HAVE_IPOPT = x1], [
 ], [
   AC_SUBST(IPOPT_LIBS, "")
   AC_SUBST(IPOPT_LDFLAGS, "")
+  unset IPOPT_CPPFLAGS
   AC_SUBST(IPOPT_CPPFLAGS, "")
 ])