diff --git a/jenkins/ci-pipelines/ci_stage_1.groovy b/jenkins/ci-pipelines/ci_stage_1.groovy
index d3c4fa1..07d4dfd 100644
--- a/jenkins/ci-pipelines/ci_stage_1.groovy
+++ b/jenkins/ci-pipelines/ci_stage_1.groovy
@@ -14,7 +14,11 @@
  *   License for the specific language governing permissions and limitations
  *   under the License.
  */
-
+/* Change log:
+ * 1. Bug 699 : Jayant Madavi : JM00553988@techmahindra.com : 23-july-2019 : Improvement to the code, now using post syntax
+ * 2.
+ */
+ 
 stage_3_merge_result = ''
 def Get_MDG(project) {
     // split the project.
@@ -96,15 +100,27 @@
             // Jayant if the build fails the below error will cause the pipeline to terminate. 
 			// error("${project} build ${build} failed")
         }
-    }
-	stage('Send Email') {
-        if((stage_3_merge_result.getResult() != 'SUCCESS') && (${env.JOB_NAME} == 'daily-stage_4')){
-            emailext (
-                subject: "[OSM-Jenkins] Job: ${env.JOB_NAME} Build: ${env.BUILD_NUMBER} Result: ${stage_3_merge_result.getResult()}",
-                body: """ Check console output at "${env.BUILD_URL}"  """,
-                to: 'OSM_MDL@list.etsi.org',
-                recipientProviders: [culprits()]
-            )
-        }
-    }
+    } 
+	post {
+         always {
+	        if((stage_3_merge_result.getResult() != 'SUCCESS') && (${env.JOB_NAME} == 'daily-stage_4')){
+               emailext (
+                   subject: "[OSM-Jenkins] Job: ${env.JOB_NAME} Build: ${env.BUILD_NUMBER} Result: ${stage_3_merge_result.getResult()}",
+                   body: """ Check console output at "${env.BUILD_URL}"  """,
+                   to: 'OSM_MDL@list.etsi.org',
+                   recipientProviders: [culprits()]
+                )
+            }
+		}
+	     success {
+		    echo 'Post For success'
+                 }
+		 failure {
+		    echo 'Post For failure'
+			}
+		 unstable {
+		    echo 'Post for unstable' 
+		 }
+  }
+	
 }
diff --git a/jenkins/ci-pipelines/ci_stage_3.groovy b/jenkins/ci-pipelines/ci_stage_3.groovy
index 1a4c009..c8cecf8 100644
--- a/jenkins/ci-pipelines/ci_stage_3.groovy
+++ b/jenkins/ci-pipelines/ci_stage_3.groovy
@@ -14,7 +14,13 @@
  *   License for the specific language governing permissions and limitations
  *   under the License.
  */
-
+ 
+/* Change log:
+ * 1. Bug 745 : Jayant Madavi : JM00553988@techmahindra.com : 23-july-2019 : Improvement to the code, typically we have 2 or  
+ *    more branches whose build gets triggered, ex master & release branch, the previous code was removing any/all docker. 
+ *	  Now removing previous docker of the same branch, so that the other branch failed docker should not be removed. It also 
+ *    acts as clean-up for previous docker remove failure.
+ */
 properties([
     parameters([
         string(defaultValue: env.GERRIT_BRANCH, description: '', name: 'GERRIT_BRANCH'),
@@ -230,7 +236,7 @@
                         repo_base_url = "-u ${params.REPOSITORY_BASE}"
                     }
 					if ( params.DO_STAGE_4 ) {
-                        sh "docker stack list |  awk '{ print \$1 }'| xargs docker stack rm"
+                        sh "docker stack list |grep "${container_name_prefix}"|  awk '{ print \$1 }'| xargs docker stack rm"
 					}
                     sh """
                         export PATH=$PATH:/snap/bin
@@ -258,7 +264,10 @@
 
                     if ( ! currentBuild.result.equals('UNSTABLE') ) {
                         stage_archive = keep_artifacts
-                    }
+                    } else {
+					   error = new Exception("Smoke test failed")
+					   currentBuild.result = 'FAILURE'
+					}
                 }
             }
 
@@ -270,7 +279,10 @@
 
                     if ( ! currentBuild.result.equals('UNSTABLE') ) {
                         stage_archive = keep_artifacts
-                    }
+                    } else {
+					   error = new Exception("Systest test failed")
+					   currentBuild.result = 'FAILURE'
+					}
                 }
             }
 
