diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index d1777d585a0c055e95cc839c3c8341e8e68be8fa..72b8539626084c37111494f3d6123f2b5cd26520 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,7 @@
+Sat Jul 28 22:37:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+	* analyze_brprob: Avoid more overflows.
+
 2001-07-27  Richard Henderson  <rth@redhat.com>
 
 	* test_summary: Copy LAST_UPDATED UTC time to head of summary.
diff --git a/contrib/analyze_brprob b/contrib/analyze_brprob
index 3c7e8e5712db5b8ec0ac0a9bb6c1fb1608829e2a..5166e8492b70f89ff048ff4f069b975ded5a235b 100755
--- a/contrib/analyze_brprob
+++ b/contrib/analyze_brprob
@@ -112,13 +112,11 @@ BEGIN {nnames = 0}
 
     if (int(pred) < 50.0)
       {
-        hit = count - hit;
+        hit = count"-"hit;
       }
     counts[name]=counts[name] "+" count
     hits[name]=hits[name] "+" hit
-    if (float (hit) < (float (count) / 2))
-      hit = "("count" - "hit")";
-    phits[name]=phits[name] "+" hit
+    phits[name]=phits[name] "+(("hit")<"count"/2)*("count"-("hit"))+(("hit")>="count"/2)*("hit")"
 
     #BC crashes on long strings.  Irritating.
     if (length(counts[name]) > 2000)