diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 862d85632df3604bb11b7b761c4f066a2b0eacc5..24a065fa4b24b750831162df55f0946b8821069b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2006-04-01  Roger Sayle  <roger@eyesopen.com>
+	    Richard Henderson  <rth@redhat.com>
+
+	* gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
+	gimple_boolify on the condition before calling gimplify_expr.
+
 2006-03-31  Bob Wilson  <bob.wilson@acm.org>
 
 	* config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 2312bc39477ed27bd87d53412bf289fd21652dee..d95a18e3a35a64c6388ed9d2d75bdc9590f5f15f 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -4536,8 +4536,12 @@ gimplify_scan_omp_clauses (tree *list_p, tree *pre_p, bool in_parallel)
 	    omp_notice_variable (outer_ctx, decl, true);
 	  break;
 
-	case OMP_CLAUSE_SCHEDULE:
 	case OMP_CLAUSE_IF:
+	  OMP_CLAUSE_OPERAND (c, 0)
+	    = gimple_boolify (OMP_CLAUSE_OPERAND (c, 0));
+	  /* Fall through.  */
+
+	case OMP_CLAUSE_SCHEDULE:
 	case OMP_CLAUSE_NUM_THREADS:
 	  gs = gimplify_expr (&OMP_CLAUSE_OPERAND (c, 0), pre_p, NULL,
 			      is_gimple_val, fb_rvalue);