diff --git a/jjb/pipeline/voltha/voltha-2.12/bbsim-tests.groovy b/jjb/pipeline/voltha/voltha-2.12/bbsim-tests.groovy
index 351a22f..efcadf0 100644
--- a/jjb/pipeline/voltha/voltha-2.12/bbsim-tests.groovy
+++ b/jjb/pipeline/voltha/voltha-2.12/bbsim-tests.groovy
@@ -44,7 +44,7 @@
 //   per-script to be sure latest repository changes are being used.
 // -----------------------------------------------------------------------
 String pipelineVer() {
-    String version = '4f87de8f31d588d8277dc5ea6fbb69e714c66079'
+    String version = '757ba9ea12d8d815c10301b7f265f3fcd7c41d26'
     return(version)
 }
 
@@ -440,7 +440,7 @@
 	pkill_proc('kail')
 	println("${iam}: LEAVE")
     }
-    
+
     println("${iam}: ENTER RobotPublisher")
     step([$class: 'RobotPublisher',
 	  disableArchiveOutput: false,
@@ -451,7 +451,7 @@
 	  passThreshold: 100,
 	  reportFileName: '**/*/report*.html',
 	  unstableThreshold: 0,
-	  onlyCritical: true]);
+	  onlyCritical: true])
     println("${iam}: LEAVE RobotPublisher")
 
     println("${iam}: LEAVE (exitStatus=${exitStatus})")
@@ -462,10 +462,9 @@
 // Intent: main
 // -----------------------------------------------------------------------
 pipeline {
-
   /* no label, executor is determined by JJB */
   agent {
-    label "${params.buildNode}"
+	label "${params.buildNode}"
   }
   options {
     timeout(time: "${timeout}", unit: 'MINUTES')
@@ -675,4 +674,4 @@
     }
 } // pipeline
 
-// EOF
+// [EOF]
diff --git a/jjb/pipeline/voltha/voltha-2.12/software-upgrades.groovy b/jjb/pipeline/voltha/voltha-2.12/software-upgrades.groovy
index d7427bb..449e64a 100755
--- a/jjb/pipeline/voltha/voltha-2.12/software-upgrades.groovy
+++ b/jjb/pipeline/voltha/voltha-2.12/software-upgrades.groovy
@@ -144,9 +144,7 @@
       // Currently only testing with ATT workflow
       // TODO: Support for other workflows
       volthaDeploy([bbsimReplica: olts.toInteger(), workflow: 'att', extraHelmFlags: extraHelmFlags, localCharts: localCharts])
-
-        // [TODO] pkill_proc("_TAG=kail-${name}")
-        // stop logging
+      // stop logging
       sh """
         P_IDS="\$(ps e -ww -A | grep "_TAG=kail-${name}" | grep -v grep | awk '{print \$1}')"
         if [ -n "\$P_IDS" ]; then
@@ -233,16 +231,11 @@
         # Run the specified tests
         make -C $WORKSPACE/voltha-system-tests \$TARGET || true
       """
-
-        pkill_proc('port-forw')
-	    // remove port-forwarding
-	    /*
+      // remove port-forwarding
       sh """
         # remove orphaned port-forward from different namespaces
         ps aux | grep port-forw | grep -v grep | awk '{print \$2}' | xargs --no-run-if-empty kill -9 || true
       """
-	     */
-
       // collect pod details
       get_pods_info("$WORKSPACE/${name}")
       sh """
@@ -298,15 +291,16 @@
 
     // -----------------------------------------------------------------------
     // -----------------------------------------------------------------------
-    stage('Install Tools') {
-        steps              {
-            script         {
-                String branchName = branchName()
+    stage('Install Tools')
+    {
+        steps
+        {
+            script
+            {
                 String iam = getIam('Install Kind')
-
-                println("${iam}: ENTER (branch=$branch)")
-                installKind(branch)   // needed early by stage(Cleanup)
-                println("${iam}: LEAVE (branch=$branch)")
+                println("${iam}: ENTER")
+                installKind("$branch")   // needed early by stage(Cleanup)
+                println("${iam}: LEAVE")
 	    } // script
 	} // steps
     } // stage
@@ -314,21 +308,37 @@
     // -----------------------------------------------------------------------
     // -----------------------------------------------------------------------
     stage('Cleanup') {
-        steps        {
-            script   {
-                pgrep_proc('port-forw')
-                pkill_proc('port-forw')
-            } // script
-            helmTeardown(['infra', 'voltha'])
-        } // steps
-    } // stage
-	
-    stage('Create K8s Cluster') {
         steps {
-            createKubernetesCluster([nodes: 3])
-        }
+
+	script {
+            println('''
+** -----------------------------------------------------------------------
+** Raw process listing
+** -----------------------------------------------------------------------
+''')
+        sh(''' ps faaux ''')
+
+            println('''
+** -----------------------------------------------------------------------
+** pgrep --list-full port
+** -----------------------------------------------------------------------
+''')
+        sh(''' set +euo pipefail && pgrep --list-full 'port' ''')
+		}
+
+        // remove port-forwarding
+        sh """
+          # remove orphaned port-forward from different namespaces
+          ps aux | grep port-forw | grep -v grep | awk '{print \$2}' | xargs --no-run-if-empty kill -9 || true
+        """
+        helmTeardown(['infra', 'voltha'])
+      }
     }
-	
+    stage('Create K8s Cluster') {
+      steps {
+        createKubernetesCluster([nodes: 3])
+      }
+    }
     stage('Run Test') {
       steps {
         test_software_upgrade("onos-app-upgrade")
@@ -362,5 +372,3 @@
     }
   }
 }
-
-// [EOF]
