diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index d40bee2a189e54f92e76a7dc77e35b806a02ac2e..5c6ef939a17776626d3c9d82df20baf3f246dfb2 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,10 @@
+2006-09-18  Paolo Carlini  <pcarlini@suse.de>
+
+	PR libstdc++/29063
+	* include/bits/valarray_array.h: Fix typo, undefine
+	_DEFINE_ARRAY_FUNCTION.
+	* include/std/std_valarray.h: Undefine _DEFINE_BINARY_OPERATOR.
+
 2006-09-14  Benjamin Kosnik  <bkoz@redhat.com>
 
 	* include/bits/concurrence.h (__mutex::__mutex): Pass address of
diff --git a/libstdc++-v3/include/bits/valarray_array.h b/libstdc++-v3/include/bits/valarray_array.h
index 57d56cf253b7a9da8e7421a30c6cd9703da30d6c..f7600a5afb4f156085797ddc2fe0a5a8d678ca31 100644
--- a/libstdc++-v3/include/bits/valarray_array.h
+++ b/libstdc++-v3/include/bits/valarray_array.h
@@ -693,7 +693,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    _DEFINE_ARRAY_FUNCTION(<<, __shift_left)
    _DEFINE_ARRAY_FUNCTION(>>, __shift_right)
 
-#undef _DEFINE_VALARRAY_FUNCTION
+#undef _DEFINE_ARRAY_FUNCTION
 
 _GLIBCXX_END_NAMESPACE
 
diff --git a/libstdc++-v3/include/std/std_valarray.h b/libstdc++-v3/include/std/std_valarray.h
index 47b00a520bc4166d386c25c1ad7cb582ae4c9545..d1f43b59268d1d1a0b6a95a6231cf4475b7ac0b1 100644
--- a/libstdc++-v3/include/std/std_valarray.h
+++ b/libstdc++-v3/include/std/std_valarray.h
@@ -1019,6 +1019,8 @@ _DEFINE_BINARY_OPERATOR(>, __greater)
 _DEFINE_BINARY_OPERATOR(<=, __less_equal)
 _DEFINE_BINARY_OPERATOR(>=, __greater_equal)
 
+#undef _DEFINE_BINARY_OPERATOR
+
 _GLIBCXX_END_NAMESPACE
 
 #endif /* _GLIBCXX_VALARRAY */