diff --git a/gcc/cobol/etests/compute-1/Makefile b/gcc/cobol/etests/compute-1/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..f77e46b3451abf45cb70ed9dc161be56b3b063c7
--- /dev/null
+++ b/gcc/cobol/etests/compute-1/Makefile
@@ -0,0 +1 @@
+include ../Makefile.inc
diff --git a/gcc/cobol/etests/compute-1/caller.cbl b/gcc/cobol/etests/compute-1/caller.cbl
new file mode 100644
index 0000000000000000000000000000000000000000..a8ceb3d2c8380867261a3d23222f57d5356fd590
--- /dev/null
+++ b/gcc/cobol/etests/compute-1/caller.cbl
@@ -0,0 +1,286 @@
+        IDENTIFICATION DIVISION.
+        PROGRAM-ID.  caller.
+
+        DATA DIVISION.
+        WORKING-STORAGE SECTION.
+        01 A PIC 99  VALUE 50.
+        01 B PIC 999 VALUE 25.
+        01 C PIC 99  VALUE 42.
+        01 Z PIC 99  VALUE ZERO.
+
+
+        PROCEDURE DIVISION.
+
+        DISPLAY "Dividing something by ZERO..."
+        DIVIDE B BY Z GIVING C
+        DISPLAY "1 C ends up being " C.
+        IF C NOT EQUAL TO 42 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DIVIDE B BY Z GIVING C
+                ON SIZE ERROR DISPLAY "Proper Size Error".
+        DISPLAY "2 C ends up being " C.
+        IF C NOT EQUAL TO 42 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DIVIDE B BY Z GIVING C
+            NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
+        DISPLAY "3 C ends up being " C.
+        IF C NOT EQUAL TO 42 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DIVIDE B BY Z GIVING C
+                ON SIZE ERROR DISPLAY "Proper Size Error"
+            NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
+        DISPLAY "4 C ends up being " C.
+        IF C NOT EQUAL TO 42 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DISPLAY "Dividing 50 by 25..."
+        DIVIDE A BY B GIVING C
+        DISPLAY "5 C ends up being " C.
+        IF C NOT EQUAL TO 2 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DIVIDE A BY B GIVING C
+                ON SIZE ERROR DISPLAY "Improper Size Error".
+        DISPLAY "6 C ends up being " C.
+        IF C NOT EQUAL TO 2 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DIVIDE A BY B GIVING C
+            NOT ON SIZE ERROR DISPLAY "Proper NOT Size Error".
+        DISPLAY "7 C ends up being " C.
+        IF C NOT EQUAL TO 2 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DIVIDE A BY B GIVING C
+                ON SIZE ERROR DISPLAY "Improper Size Error"
+            NOT ON SIZE ERROR DISPLAY "Proper NOT Size Error".
+        DISPLAY "8 C ends up being " C.
+        IF C NOT EQUAL TO 2 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DISPLAY "DIVIDE ZERO into 50..."
+        MOVE 50 TO A
+        DIVIDE Z INTO A
+        DISPLAY "9 A ends up being " A.
+        IF A NOT EQUAL TO 50 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        MOVE 50 TO A
+        DIVIDE Z INTO A
+                ON SIZE ERROR DISPLAY "Proper Size Error".
+        DISPLAY "10 A ends up being " A.
+        IF A NOT EQUAL TO 50 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        MOVE 50 TO A
+        DIVIDE Z INTO A
+            NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
+        DISPLAY "11 A ends up being " A.
+        IF A NOT EQUAL TO 50 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        MOVE 50 TO A
+        DIVIDE Z INTO A
+                ON SIZE ERROR DISPLAY "Proper Size Error"
+            NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
+        DISPLAY "12 A ends up being " A.
+        IF A NOT EQUAL TO 50 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DISPLAY "DIVIDE 25 into 50..."
+        DIVIDE B INTO A
+        DISPLAY "13 A ends up being " A.
+        IF A NOT EQUAL TO 2 DISPLAY "That was wrong" END-IF
+        MOVE 50 TO A
+        DISPLAY SPACE
+
+        DIVIDE B INTO A
+                ON SIZE ERROR DISPLAY "Improper Size Error".
+        DISPLAY "14 A ends up being " A.
+        IF A NOT EQUAL TO 2 DISPLAY "That was wrong" END-IF
+        MOVE 50 TO A
+        DISPLAY SPACE
+
+        DIVIDE B INTO A
+            NOT ON SIZE ERROR DISPLAY "Proper NOT Size Error".
+        DISPLAY "15 A ends up being " A.
+        IF A NOT EQUAL TO 2 DISPLAY "That was wrong" END-IF
+        MOVE 50 TO A
+        DISPLAY SPACE
+
+        DIVIDE B INTO A
+                ON SIZE ERROR DISPLAY "Improper Size Error"
+            NOT ON SIZE ERROR DISPLAY "Proper NOT Size Error".
+        DISPLAY "16 A ends up being " A.
+        IF A NOT EQUAL TO 2 DISPLAY "That was wrong" END-IF
+        MOVE 50 TO A
+        DISPLAY SPACE
+
+        DISPLAY "Simple COMPUTE A=B, no ON ERROR clause"
+        MOVE 5 TO B
+        DISPLAY "17 COMPUTE A (PIC XX) = " B
+        COMPUTE A = B
+        DISPLAY A
+        IF A NOT EQUAL TO 5 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        MOVE 45 TO B
+        DISPLAY "18 COMPUTE A (PIC XX) = " B
+        COMPUTE A = B
+        DISPLAY A
+        IF A NOT EQUAL TO 45 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        MOVE 345 TO B
+        DISPLAY "19 COMPUTE A (PIC XX) = " B
+        COMPUTE A = B
+        DISPLAY A
+        IF A NOT EQUAL TO 45 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DISPLAY "Simple COMPUTE A=B, with ON ERROR clause"
+        MOVE 5 TO B
+        DISPLAY "20 COMPUTE A (PIC XX) = " B
+        COMPUTE A = B
+                ON SIZE ERROR DISPLAY "Improper Size Error"
+            NOT ON SIZE ERROR DISPLAY "Proper NOT Size Error".
+        DISPLAY A
+        IF A NOT EQUAL TO 5 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        MOVE 45 TO B
+        DISPLAY "21 COMPUTE A (PIC XX) = " B
+        COMPUTE A = B
+                ON SIZE ERROR DISPLAY "Improper Size Error"
+            NOT ON SIZE ERROR DISPLAY "Proper NOT Size Error".
+        DISPLAY A
+        IF A NOT EQUAL TO 45 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        MOVE 345 TO B
+        DISPLAY "22 COMPUTE A (PIC XX) = " B
+        COMPUTE A = B
+                ON SIZE ERROR DISPLAY "Proper Size Error"
+            NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
+        DISPLAY A
+        IF A NOT EQUAL TO 45 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DISPLAY "23 COMPUTE 1 + 2 + 3 * 4 (should be 15, no error)"
+        COMPUTE C = 1 + 2 + 3 * 4
+                ON SIZE ERROR DISPLAY "Improper Size Error"
+            NOT ON SIZE ERROR DISPLAY "Proper NOT Size Error".
+        DISPLAY C
+        DISPLAY SPACE
+
+        DISPLAY "24 COMPUTE 101 + 2 + 3 * 4 (should be 15, with error)"
+        COMPUTE C = 101 + 2 + 3 * 4
+                ON SIZE ERROR DISPLAY "Proper Size Error"
+            NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
+        DISPLAY C
+        IF C NOT EQUAL TO 15 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DISPLAY "25 COMPUTE 11 + 2 + 50/ZERO + 3 * 4 should be 99, with no error clause"
+        MOVE 50 TO A
+        MOVE 99 TO C
+        COMPUTE C = 11 + 2 + A/Z + 3 * 4
+        DISPLAY C
+        IF C NOT EQUAL TO 99 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DISPLAY "26 COMPUTE 11 + 2 + 50/ZERO + 3 * 4 (should be 99, with error)"
+        MOVE 50 TO A
+        MOVE 99 TO C
+        COMPUTE C = 11 + 2 + A/Z + 3 * 4
+                ON SIZE ERROR DISPLAY "Proper Size Error"
+            NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
+        DISPLAY C
+        IF C NOT EQUAL TO 99 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DISPLAY "27 COMPUTE C = 2**3, should be 08"
+        MOVE 99 TO C
+        COMPUTE C = 2**3
+        DISPLAY C
+        IF C NOT EQUAL TO 8 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DISPLAY "28 COMPUTE C = 16**0.5, should be 04"
+        MOVE 99 TO C
+        COMPUTE C = 16**0.5
+        DISPLAY C
+        IF C NOT EQUAL TO 4 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DISPLAY "29 COMPUTE C = 0**0, should be 01"
+        MOVE 99 TO C
+        COMPUTE C = 0**0
+        DISPLAY C
+        IF C NOT EQUAL TO 1 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DISPLAY "30 COMPUTE C = 0**-1, should be 00"
+        MOVE 99 TO C
+        COMPUTE C = 0**-1
+        DISPLAY C
+        IF C NOT EQUAL TO 0 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DISPLAY "31 COMPUTE C = -16**0.5, should be 99"
+        MOVE 99 TO C
+        COMPUTE C = -16**0.5
+        DISPLAY C
+        IF C NOT EQUAL TO 99 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DISPLAY "32 COMPUTE C = 2**3, should be 08"
+        MOVE 99 TO C
+        COMPUTE C = 2**3
+                ON SIZE ERROR DISPLAY "Improper Size Error"
+            NOT ON SIZE ERROR DISPLAY "Proper NOT Size Error".
+        DISPLAY C
+        IF C NOT EQUAL TO 08 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DISPLAY "33 COMPUTE C = 16**0.5, should be 04"
+        MOVE 99 TO C
+        COMPUTE C = 16**0.5
+                ON SIZE ERROR DISPLAY "Improper Size Error"
+            NOT ON SIZE ERROR DISPLAY "Proper NOT Size Error".
+        DISPLAY C
+        IF C NOT EQUAL TO 04 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DISPLAY "34 COMPUTE C = 0**0, should be 99"
+        MOVE 99 TO C
+        COMPUTE C = 0**0
+                ON SIZE ERROR DISPLAY "Proper Size Error"
+            NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
+        DISPLAY C
+        IF C NOT EQUAL TO 99 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DISPLAY "35 COMPUTE C = 0**-1, should be 99"
+        MOVE 99 TO C
+        COMPUTE C = 0**-1
+                ON SIZE ERROR DISPLAY "Proper Size Error"
+            NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
+        DISPLAY C
+        IF C NOT EQUAL TO 99 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        DISPLAY "36 COMPUTE C = -16**0.5, should be 99"
+        MOVE 99 TO C
+        COMPUTE C = -16**0.5
+                ON SIZE ERROR DISPLAY "Proper Size Error"
+            NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
+        DISPLAY C
+        IF C NOT EQUAL TO 99 DISPLAY "That was wrong" END-IF
+        DISPLAY SPACE
+
+        STOP RUN.
+        END PROGRAM caller.
diff --git a/gcc/cobol/etests/compute-1/input.txt b/gcc/cobol/etests/compute-1/input.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9d1318ea0eb50b6d10df52a6db5e600709ec0fc4
--- /dev/null
+++ b/gcc/cobol/etests/compute-1/input.txt
@@ -0,0 +1,6 @@
+D001*002*003*004*005*006*007*008*009*010*011*012*013*014*015*016*017*018*019*020
+D021*022*023*024*025*026*027*028*029*030*031*032*033*034*035*036*037*038*039*040
+D041*042*043*044*045*046*047*048*049*050
+ABCDEFGHIJ
+KLMNOPQRST
+
diff --git a/gcc/cobol/etests/compute-1/known-good.txt b/gcc/cobol/etests/compute-1/known-good.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3f929635dc30750118e336d775229d4810c67d3c
--- /dev/null
+++ b/gcc/cobol/etests/compute-1/known-good.txt
@@ -0,0 +1,117 @@
+Dividing something by ZERO...
+1 C ends up being 42
+ 
+Proper Size Error
+2 C ends up being 42
+ 
+3 C ends up being 42
+ 
+Proper Size Error
+4 C ends up being 42
+ 
+Dividing 50 by 25...
+5 C ends up being 02
+ 
+6 C ends up being 02
+ 
+Proper NOT Size Error
+7 C ends up being 02
+ 
+Proper NOT Size Error
+8 C ends up being 02
+ 
+DIVIDE ZERO into 50...
+9 A ends up being 50
+ 
+Proper Size Error
+10 A ends up being 50
+ 
+11 A ends up being 50
+ 
+Proper Size Error
+12 A ends up being 50
+ 
+DIVIDE 25 into 50...
+13 A ends up being 02
+ 
+14 A ends up being 02
+ 
+Proper NOT Size Error
+15 A ends up being 02
+ 
+Proper NOT Size Error
+16 A ends up being 02
+ 
+Simple COMPUTE A=B, no ON ERROR clause
+17 COMPUTE A (PIC XX) = 005
+05
+ 
+18 COMPUTE A (PIC XX) = 045
+45
+ 
+19 COMPUTE A (PIC XX) = 345
+45
+ 
+Simple COMPUTE A=B, with ON ERROR clause
+20 COMPUTE A (PIC XX) = 005
+Proper NOT Size Error
+05
+ 
+21 COMPUTE A (PIC XX) = 045
+Proper NOT Size Error
+45
+ 
+22 COMPUTE A (PIC XX) = 345
+Proper Size Error
+45
+ 
+23 COMPUTE 1 + 2 + 3 * 4 (should be 15, no error)
+Proper NOT Size Error
+15
+ 
+24 COMPUTE 101 + 2 + 3 * 4 (should be 15, with error)
+Proper Size Error
+15
+ 
+25 COMPUTE 11 + 2 + 50/ZERO + 3 * 4 should be 99, with no error clause
+99
+ 
+26 COMPUTE 11 + 2 + 50/ZERO + 3 * 4 (should be 99, with error)
+Proper Size Error
+99
+ 
+27 COMPUTE C = 2**3, should be 08
+08
+ 
+28 COMPUTE C = 16**0.5, should be 04
+04
+ 
+29 COMPUTE C = 0**0, should be 01
+01
+ 
+30 COMPUTE C = 0**-1, should be 00
+00
+ 
+31 COMPUTE C = -16**0.5, should be 99
+99
+ 
+32 COMPUTE C = 2**3, should be 08
+Proper NOT Size Error
+08
+ 
+33 COMPUTE C = 16**0.5, should be 04
+Proper NOT Size Error
+04
+ 
+34 COMPUTE C = 0**0, should be 99
+Proper Size Error
+99
+ 
+35 COMPUTE C = 0**-1, should be 99
+Proper Size Error
+99
+ 
+36 COMPUTE C = -16**0.5, should be 99
+Proper Size Error
+99
+ 
diff --git a/gcc/cobol/genapi.cc b/gcc/cobol/genapi.cc
index 48e6874c410dacf1de7320f9f0427fcd231a3aca..3a09aa4be53c961fec998a362590efcd47d4fd31 100644
--- a/gcc/cobol/genapi.cc
+++ b/gcc/cobol/genapi.cc
@@ -4764,7 +4764,7 @@ parser_assign( size_t nC, cbl_num_result_t *C,
     refer_fill_source(sourceref);
 
     // gg_printf("parser_assign: The compute_error_code is %d\n",
-              // gg_cast(INT, compute_error->structs.compute_error->compute_error_code), NULL_TREE);
+    //            gg_cast(INT, compute_error->structs.compute_error->compute_error_code), NULL_TREE);
 
     if( on_error )
       {
@@ -4811,7 +4811,9 @@ parser_assign( size_t nC, cbl_num_result_t *C,
       // resulted in a NaN, we *don't* do the move:
 
       IF( gg_bitwise_and( compute_error->structs.compute_error->compute_error_code,
-                          build_int_cst_type(INT, compute_error_exp_minus_by_frac)),
+                          build_int_cst_type(INT,
+                                             compute_error_exp_minus_by_frac 
+                                             | compute_error_divide_by_zero)),
                           ne_op,
                           integer_zero_node )
         {
diff --git a/gcc/cobol/parse.y b/gcc/cobol/parse.y
index ecda33508853cebfc48124b01efeeb4ddcf2bd9b..66c6f4f44f513405f21f85407d44a067609f3140 100644
--- a/gcc/cobol/parse.y
+++ b/gcc/cobol/parse.y
@@ -4039,7 +4039,7 @@ sentences:      sentence {
                       symbol_temporaries_free();
                 }
         |       sentences sentence {
-                  if( getenv("STATIC") && $2 != PARAGRAPH ) 
+                  if( !getenv("STATIC") && $2 != PARAGRAPH ) 
                       symbol_temporaries_free();
                 }
                 ;
diff --git a/gcc/cobol/tests/compute-1/caller.cbl b/gcc/cobol/tests/compute-1/caller.cbl
index 75a3d6e8541b9052baab9a62fc3872336a5bc5de..a8ceb3d2c8380867261a3d23222f57d5356fd590 100644
--- a/gcc/cobol/tests/compute-1/caller.cbl
+++ b/gcc/cobol/tests/compute-1/caller.cbl
@@ -3,10 +3,10 @@
 
         DATA DIVISION.
         WORKING-STORAGE SECTION.
-        01 A PIC 99 VALUE 50.
+        01 A PIC 99  VALUE 50.
         01 B PIC 999 VALUE 25.
-        01 C PIC 99 VALUE 42.
-        01 Z PIC 99 VALUE ZERO.
+        01 C PIC 99  VALUE 42.
+        01 Z PIC 99  VALUE ZERO.
 
 
         PROCEDURE DIVISION.
@@ -14,61 +14,72 @@
         DISPLAY "Dividing something by ZERO..."
         DIVIDE B BY Z GIVING C
         DISPLAY "1 C ends up being " C.
+        IF C NOT EQUAL TO 42 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DIVIDE B BY Z GIVING C
                 ON SIZE ERROR DISPLAY "Proper Size Error".
         DISPLAY "2 C ends up being " C.
+        IF C NOT EQUAL TO 42 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DIVIDE B BY Z GIVING C
             NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
         DISPLAY "3 C ends up being " C.
+        IF C NOT EQUAL TO 42 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DIVIDE B BY Z GIVING C
                 ON SIZE ERROR DISPLAY "Proper Size Error"
             NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
         DISPLAY "4 C ends up being " C.
+        IF C NOT EQUAL TO 42 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
-        DISPLAY "Dividing something 50 by 25..."
+        DISPLAY "Dividing 50 by 25..."
         DIVIDE A BY B GIVING C
         DISPLAY "5 C ends up being " C.
+        IF C NOT EQUAL TO 2 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DIVIDE A BY B GIVING C
                 ON SIZE ERROR DISPLAY "Improper Size Error".
         DISPLAY "6 C ends up being " C.
+        IF C NOT EQUAL TO 2 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DIVIDE A BY B GIVING C
             NOT ON SIZE ERROR DISPLAY "Proper NOT Size Error".
         DISPLAY "7 C ends up being " C.
+        IF C NOT EQUAL TO 2 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DIVIDE A BY B GIVING C
                 ON SIZE ERROR DISPLAY "Improper Size Error"
             NOT ON SIZE ERROR DISPLAY "Proper NOT Size Error".
         DISPLAY "8 C ends up being " C.
+        IF C NOT EQUAL TO 2 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DISPLAY "DIVIDE ZERO into 50..."
         MOVE 50 TO A
         DIVIDE Z INTO A
         DISPLAY "9 A ends up being " A.
+        IF A NOT EQUAL TO 50 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         MOVE 50 TO A
         DIVIDE Z INTO A
                 ON SIZE ERROR DISPLAY "Proper Size Error".
         DISPLAY "10 A ends up being " A.
+        IF A NOT EQUAL TO 50 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         MOVE 50 TO A
         DIVIDE Z INTO A
             NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
         DISPLAY "11 A ends up being " A.
+        IF A NOT EQUAL TO 50 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         MOVE 50 TO A
@@ -76,23 +87,27 @@
                 ON SIZE ERROR DISPLAY "Proper Size Error"
             NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
         DISPLAY "12 A ends up being " A.
+        IF A NOT EQUAL TO 50 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DISPLAY "DIVIDE 25 into 50..."
         DIVIDE B INTO A
         DISPLAY "13 A ends up being " A.
+        IF A NOT EQUAL TO 2 DISPLAY "That was wrong" END-IF
         MOVE 50 TO A
         DISPLAY SPACE
 
         DIVIDE B INTO A
                 ON SIZE ERROR DISPLAY "Improper Size Error".
         DISPLAY "14 A ends up being " A.
+        IF A NOT EQUAL TO 2 DISPLAY "That was wrong" END-IF
         MOVE 50 TO A
         DISPLAY SPACE
 
         DIVIDE B INTO A
             NOT ON SIZE ERROR DISPLAY "Proper NOT Size Error".
         DISPLAY "15 A ends up being " A.
+        IF A NOT EQUAL TO 2 DISPLAY "That was wrong" END-IF
         MOVE 50 TO A
         DISPLAY SPACE
 
@@ -100,6 +115,7 @@
                 ON SIZE ERROR DISPLAY "Improper Size Error"
             NOT ON SIZE ERROR DISPLAY "Proper NOT Size Error".
         DISPLAY "16 A ends up being " A.
+        IF A NOT EQUAL TO 2 DISPLAY "That was wrong" END-IF
         MOVE 50 TO A
         DISPLAY SPACE
 
@@ -108,18 +124,21 @@
         DISPLAY "17 COMPUTE A (PIC XX) = " B
         COMPUTE A = B
         DISPLAY A
+        IF A NOT EQUAL TO 5 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         MOVE 45 TO B
         DISPLAY "18 COMPUTE A (PIC XX) = " B
         COMPUTE A = B
         DISPLAY A
+        IF A NOT EQUAL TO 45 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         MOVE 345 TO B
         DISPLAY "19 COMPUTE A (PIC XX) = " B
         COMPUTE A = B
         DISPLAY A
+        IF A NOT EQUAL TO 45 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DISPLAY "Simple COMPUTE A=B, with ON ERROR clause"
@@ -129,6 +148,7 @@
                 ON SIZE ERROR DISPLAY "Improper Size Error"
             NOT ON SIZE ERROR DISPLAY "Proper NOT Size Error".
         DISPLAY A
+        IF A NOT EQUAL TO 5 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         MOVE 45 TO B
@@ -137,6 +157,7 @@
                 ON SIZE ERROR DISPLAY "Improper Size Error"
             NOT ON SIZE ERROR DISPLAY "Proper NOT Size Error".
         DISPLAY A
+        IF A NOT EQUAL TO 45 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         MOVE 345 TO B
@@ -145,6 +166,7 @@
                 ON SIZE ERROR DISPLAY "Proper Size Error"
             NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
         DISPLAY A
+        IF A NOT EQUAL TO 45 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DISPLAY "23 COMPUTE 1 + 2 + 3 * 4 (should be 15, no error)"
@@ -159,6 +181,7 @@
                 ON SIZE ERROR DISPLAY "Proper Size Error"
             NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
         DISPLAY C
+        IF C NOT EQUAL TO 15 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DISPLAY "25 COMPUTE 11 + 2 + 50/ZERO + 3 * 4 should be 99, with no error clause"
@@ -166,6 +189,7 @@
         MOVE 99 TO C
         COMPUTE C = 11 + 2 + A/Z + 3 * 4
         DISPLAY C
+        IF C NOT EQUAL TO 99 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DISPLAY "26 COMPUTE 11 + 2 + 50/ZERO + 3 * 4 (should be 99, with error)"
@@ -175,36 +199,42 @@
                 ON SIZE ERROR DISPLAY "Proper Size Error"
             NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
         DISPLAY C
+        IF C NOT EQUAL TO 99 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DISPLAY "27 COMPUTE C = 2**3, should be 08"
         MOVE 99 TO C
         COMPUTE C = 2**3
         DISPLAY C
+        IF C NOT EQUAL TO 8 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DISPLAY "28 COMPUTE C = 16**0.5, should be 04"
         MOVE 99 TO C
         COMPUTE C = 16**0.5
         DISPLAY C
+        IF C NOT EQUAL TO 4 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DISPLAY "29 COMPUTE C = 0**0, should be 01"
         MOVE 99 TO C
         COMPUTE C = 0**0
         DISPLAY C
+        IF C NOT EQUAL TO 1 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DISPLAY "30 COMPUTE C = 0**-1, should be 00"
         MOVE 99 TO C
         COMPUTE C = 0**-1
         DISPLAY C
+        IF C NOT EQUAL TO 0 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DISPLAY "31 COMPUTE C = -16**0.5, should be 99"
         MOVE 99 TO C
         COMPUTE C = -16**0.5
         DISPLAY C
+        IF C NOT EQUAL TO 99 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DISPLAY "32 COMPUTE C = 2**3, should be 08"
@@ -213,6 +243,7 @@
                 ON SIZE ERROR DISPLAY "Improper Size Error"
             NOT ON SIZE ERROR DISPLAY "Proper NOT Size Error".
         DISPLAY C
+        IF C NOT EQUAL TO 08 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DISPLAY "33 COMPUTE C = 16**0.5, should be 04"
@@ -221,6 +252,7 @@
                 ON SIZE ERROR DISPLAY "Improper Size Error"
             NOT ON SIZE ERROR DISPLAY "Proper NOT Size Error".
         DISPLAY C
+        IF C NOT EQUAL TO 04 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DISPLAY "34 COMPUTE C = 0**0, should be 99"
@@ -229,6 +261,7 @@
                 ON SIZE ERROR DISPLAY "Proper Size Error"
             NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
         DISPLAY C
+        IF C NOT EQUAL TO 99 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DISPLAY "35 COMPUTE C = 0**-1, should be 99"
@@ -237,6 +270,7 @@
                 ON SIZE ERROR DISPLAY "Proper Size Error"
             NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
         DISPLAY C
+        IF C NOT EQUAL TO 99 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         DISPLAY "36 COMPUTE C = -16**0.5, should be 99"
@@ -245,6 +279,7 @@
                 ON SIZE ERROR DISPLAY "Proper Size Error"
             NOT ON SIZE ERROR DISPLAY "Improper NOT Size Error".
         DISPLAY C
+        IF C NOT EQUAL TO 99 DISPLAY "That was wrong" END-IF
         DISPLAY SPACE
 
         STOP RUN.
diff --git a/gcc/cobol/tests/compute-1/known-good.txt b/gcc/cobol/tests/compute-1/known-good.txt
index 37fa8789eddfd9954f2304439b1d0027c15365c0..3f929635dc30750118e336d775229d4810c67d3c 100644
--- a/gcc/cobol/tests/compute-1/known-good.txt
+++ b/gcc/cobol/tests/compute-1/known-good.txt
@@ -9,7 +9,7 @@ Proper Size Error
 Proper Size Error
 4 C ends up being 42
  
-Dividing something 50 by 25...
+Dividing 50 by 25...
 5 C ends up being 02
  
 6 C ends up being 02
@@ -74,7 +74,7 @@ Proper Size Error
 15
  
 25 COMPUTE 11 + 2 + 50/ZERO + 3 * 4 should be 99, with no error clause
-25
+99
  
 26 COMPUTE 11 + 2 + 50/ZERO + 3 * 4 (should be 99, with error)
 Proper Size Error