diff --git a/src/com/mirantis/mk/Salt.groovy b/src/com/mirantis/mk/Salt.groovy
index fa6dd60..0a9c78e 100644
--- a/src/com/mirantis/mk/Salt.groovy
+++ b/src/com/mirantis/mk/Salt.groovy
@@ -1008,7 +1008,7 @@
                                             outputResources.add(String.format("Resource: %s\n\u001B[33m%s\u001B[0m", resKey, common.prettify(resource)))
                                         }
                                     }else{
-                                        if(!printOnlyChanges || resource.changes.size() > 0){
+                                        if(!printOnlyChanges || (resource.changes && resource.changes.size() > 0)) {
                                             outputResources.add(String.format("Resource: %s\n\u001B[32m%s\u001B[0m", resKey, common.prettify(resource)))
                                         }
                                     }
diff --git a/src/com/mirantis/mk/Workflow.groovy b/src/com/mirantis/mk/Workflow.groovy
index e798a19..25191b7 100644
--- a/src/com/mirantis/mk/Workflow.groovy
+++ b/src/com/mirantis/mk/Workflow.groovy
@@ -94,7 +94,6 @@
  *                                If true: immediatelly fails the pipeline. DO NOT USE 'true' with runScenario().
  */
 def runSteps(steps, global_variables, failed_jobs, Boolean propagate = false) {
-    currentBuild.description = ''
     for (step in steps) {
         stage("Running job ${step['job']}") {
 
@@ -176,6 +175,8 @@
 
 def runScenario(scenario) {
 
+    // Clear description before adding new messages
+    currentBuild.description = ''
     // Collect the parameters for the jobs here
     global_variables = [:]
     // List of failed jobs to show at the end
