diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 6c3ddc3eef9643c452a2ea2419ace4264b0b96e1..82042ccaa8cba8de9233089a4c702e5d302d1e20 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2004-05-11  Roger Sayle  <roger@eyesopen.com>
+
+	* utils.c (max_size): Use MIN_EXPR to find the minimum value of a
+	COND_EXPR.
+
 2004-05-10  Doug Rupp  <rupp@gnat.com>
 
 	* 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
diff --git a/gcc/ada/utils.c b/gcc/ada/utils.c
index 4213e8a3a157ac67bfab49f771c67747d7d552fd..e1aac178a9e2d39c2ca084d10c15967345db817a 100644
--- a/gcc/ada/utils.c
+++ b/gcc/ada/utils.c
@@ -2215,7 +2215,7 @@ max_size (tree exp, int max_p)
 	  if (code == SAVE_EXPR)
 	    return exp;
 	  else if (code == COND_EXPR)
-	    return fold (build (MAX_EXPR, type,
+	    return fold (build (max_p ? MAX_EXPR : MIN_EXPR, type,
 				max_size (TREE_OPERAND (exp, 1), max_p),
 				max_size (TREE_OPERAND (exp, 2), max_p)));
 	  else if (code == CALL_EXPR && TREE_OPERAND (exp, 1) != 0)