Index: openais-1.1.4/init/suse
===================================================================
--- openais-1.1.4.orig/init/suse
+++ openais-1.1.4/init/suse
@@ -119,40 +119,29 @@ start() {
 }
 
 do_force=0
-do_forever=1
 
 stop() {
-    local waitcount=0
+    local escalation_delay=20
     local iter=0
     local stopsbd=1
     local sig=TERM
+
     echo -n $"Stopping OpenAIS/corosync daemon ($prog): "
 
     while internal_status; do
-	if [ $waitcount -eq 0 ]; then
-           c_pid="`pidofproc $exec`"
-	   if [ $iter -gt 0 ]; then
-	      if [ $do_force = 1 ]; then
-	         echo -n " Escalating... "
-	         sig=KILL
-	         # Do not stop SBD if we forcibly killed corosync; other
-	         # nodes may still have a legitimate desire to STONITH us.
-	         stopsbd=0
-	      fi
-	      if [ $do_forever = 0 ]; then
-	     	 echo "Failed"
-		 return 1
-	      fi
-	   fi
-	   # Start a new cycle:
-	   kill -$sig $c_pid
-	   waitcount=0
-	   iter=$[iter+1]
-	fi
-
-	waitcount=$[waitcount+1]
-	echo -n "."
-	sleep 2
+        c_pid="`pidofproc $exec`"
+        if [ $iter -eq $escalation_delay -a $do_force = 1 ]; then
+            echo -n " Escalating... "
+            sig=KILL
+            # Do not stop SBD if we forcibly killed corosync; other
+            # nodes may still have a legitimate desire to STONITH us.
+            stopsbd=0
+        fi
+        kill -$sig $c_pid
+        iter=$[iter+1]
+
+        echo -n "."
+        sleep 2
     done
 
     if [ $stopsbd = 1 ]; then
