diff --git a/application/helpers/expressions/em_manager_helper.php b/application/helpers/expressions/em_manager_helper.php
index 25391f7d10..938a904b9b 100644
--- a/application/helpers/expressions/em_manager_helper.php
+++ b/application/helpers/expressions/em_manager_helper.php
@@ -5171,7 +5171,28 @@ class LimeExpressionManager
                     return;
                 }
                 if ($oResponse->submitdate == null || Survey::model()->findByPk($this->sid)->alloweditaftercompletion == 'Y') {
+
+                    // -------------- BUG CODE IMPLEMENTATION DECRYPT FIRST ENCRYPTED FIELDS -------
+
+                    // get all encrypted attributes of current survey
+                    $encryptedAttributes = Response::getEncryptedAttributes($this->sid);
+
+                    if (count($encryptedAttributes) > 0) {
+                        $decryptedAttributes = array();
+
+                        foreach ($encryptedAttributes as $key => $value) {
+                            if (isset($oResponse->$value) && $oResponse->$value) {
+                                // decrypt all encrypted values of current survey
+                                $decryptedAttributes[$value] = $oResponse->decrypt($oResponse->$value);
+                            }
+                        }
+
+                        // set decypted values to response object
+                        $oResponse->setAttributes($decryptedAttributes, false);
+                    }
+
                     $oResponse->setAttributes($aResponseAttributes, false);
+                    
                     if (!$oResponse->encryptSave()) {
                         $message = submitfailed('', print_r($oResponse->getErrors(), true)); // $response->getErrors() is array[string[]], then can not join
                         if (($this->debugLevel & LEM_DEBUG_VALIDATION_SUMMARY) == LEM_DEBUG_VALIDATION_SUMMARY) {
