diff --git a/src/datastore_mad/remotes/vcenter/export b/src/datastore_mad/remotes/vcenter/export
index 864d673f0f..856a170f39 100755
--- a/src/datastore_mad/remotes/vcenter/export
+++ b/src/datastore_mad/remotes/vcenter/export
@@ -71,7 +71,7 @@ ds_id = drv_action['/DS_DRIVER_ACTION_DATA/DATASTORE/ID']
 if img_source.nil?
     message = 'Not enough information to export the image, '\
               'missing image source.'
-    STDERR.puts error_message(message)
+    STDERR.puts message
     exit(-1)
 end
 
diff --git a/src/im_mad/im_exec/one_im_exec.rb b/src/im_mad/im_exec/one_im_exec.rb
index fb3416238a..410ab05e81 100755
--- a/src/im_mad/im_exec/one_im_exec.rb
+++ b/src/im_mad/im_exec/one_im_exec.rb
@@ -188,37 +188,25 @@ class InformationManagerDriver < OpenNebulaDriver
     # Sends a log message to ONE. The +message+ can be multiline, it will
     # be automatically splitted by lines.
     def log(id, message, not_used=true)
-        in_error = false
-        msg      = message.strip
-        severity = 'I'
+        msg = message.strip
 
         msg.each_line do |line|
-            l = line.strip
+            severity = 'I'
 
-            if l == 'ERROR MESSAGE --8<------'
-                in_error = true
-                next
-            elsif l == 'ERROR MESSAGE ------>8--'
-                in_error = false
-                next
-            else
-                m = line.match(/^(ERROR|DEBUG|INFO):(.*)$/)
+            m = line.match(/^(ERROR|DEBUG|INFO):(.*)$/)
 
-                if in_error
+            if m
+                line = m[2]
+
+                case m[1]
+                when 'ERROR'
                     severity = 'E'
-                elsif m
-                    line = m[2]
-
-                    case m[1]
-                    when 'ERROR'
-                        severity = 'E'
-                    when 'DEBUG'
-                        severity = 'D'
-                    when 'INFO'
-                        severity = 'I'
-                    else
-                        severity = 'I'
-                    end
+                when 'DEBUG'
+                    severity = 'D'
+                when 'INFO'
+                    severity = 'I'
+                else
+                    severity = 'I'
                 end
             end
 
diff --git a/src/ipamm_mad/remotes/aws/get_address b/src/ipamm_mad/remotes/aws/get_address
index c33cf6011a..37fdda0a24 100755
--- a/src/ipamm_mad/remotes/aws/get_address
+++ b/src/ipamm_mad/remotes/aws/get_address
@@ -105,10 +105,6 @@ begin
         ]
     EOF
 rescue StandardError => e
-    error_str = "ERROR MESSAGE --8<------\n"
-    error_str << e.to_s
-    error_str << "\nERROR MESSAGE ------>8--"
-
-    STDERR.puts error_str
+    STDERR.puts e.to_s
     exit(-1)
 end
diff --git a/src/ipamm_mad/remotes/aws/register_address_range b/src/ipamm_mad/remotes/aws/register_address_range
index 005c0d1ef1..2be4783f49 100755
--- a/src/ipamm_mad/remotes/aws/register_address_range
+++ b/src/ipamm_mad/remotes/aws/register_address_range
@@ -219,10 +219,6 @@ begin
         ]
     EOF
 rescue StandardError => e
-    error_str = "ERROR MESSAGE --8<------\n"
-    error_str << e.to_s
-    error_str << "\nERROR MESSAGE ------>8--"
-
-    STDERR.puts error_str
+    STDERR.puts e.to_s
     exit(-1)
 end
diff --git a/src/ipamm_mad/remotes/aws/unregister_address_range b/src/ipamm_mad/remotes/aws/unregister_address_range
index b6d41bf7f0..f43d2ed702 100755
--- a/src/ipamm_mad/remotes/aws/unregister_address_range
+++ b/src/ipamm_mad/remotes/aws/unregister_address_range
@@ -127,10 +127,6 @@ begin
 
     ec2.release_address({ :allocation_id => allocation_id })
 rescue StandardError => e
-    error_str = "ERROR MESSAGE --8<------\n"
-    error_str << e.to_s
-    error_str << "\nERROR MESSAGE ------>8--"
-
-    STDERR.puts error_str
+    STDERR.puts e.to_s
     exit(-1)
 end
diff --git a/src/ipamm_mad/remotes/packet/get_address b/src/ipamm_mad/remotes/packet/get_address
index 1b32aac83b..f6181a5f01 100755
--- a/src/ipamm_mad/remotes/packet/get_address
+++ b/src/ipamm_mad/remotes/packet/get_address
@@ -103,10 +103,6 @@ begin
         ]
     EOF
 rescue StandardError => e
-    error_str = "ERROR MESSAGE --8<------\n"
-    error_str << e.to_s
-    error_str << "\nERROR MESSAGE ------>8--"
-
-    STDERR.puts error_str
+    STDERR.puts e.to_s
     exit(-1)
 end
diff --git a/src/ipamm_mad/remotes/packet/register_address_range b/src/ipamm_mad/remotes/packet/register_address_range
index 0affde86da..1e031b085b 100755
--- a/src/ipamm_mad/remotes/packet/register_address_range
+++ b/src/ipamm_mad/remotes/packet/register_address_range
@@ -228,10 +228,6 @@ begin
         ]
     EOF
 rescue StandardError => e
-    error_str = "ERROR MESSAGE --8<------\n"
-    error_str << e.to_s
-    error_str << "\nERROR MESSAGE ------>8--"
-
-    STDERR.puts error_str
+    STDERR.puts e.to_s
     exit(-1)
 end
diff --git a/src/ipamm_mad/remotes/packet/unregister_address_range b/src/ipamm_mad/remotes/packet/unregister_address_range
index 3e23ff3973..cf49a6c77b 100755
--- a/src/ipamm_mad/remotes/packet/unregister_address_range
+++ b/src/ipamm_mad/remotes/packet/unregister_address_range
@@ -116,10 +116,6 @@ begin
 
     packet.delete_ip(packet_id)
 rescue StandardError => e
-    error_str = "ERROR MESSAGE --8<------\n"
-    error_str << e.to_s
-    error_str << "\nERROR MESSAGE ------>8--"
-
-    STDERR.puts error_str
+    STDERR.puts e.to_s
     exit(-1)
 end
diff --git a/src/ipamm_mad/remotes/vultr/get_address b/src/ipamm_mad/remotes/vultr/get_address
index 2bd85fd7e2..0d3585245f 100755
--- a/src/ipamm_mad/remotes/vultr/get_address
+++ b/src/ipamm_mad/remotes/vultr/get_address
@@ -90,10 +90,6 @@ begin
         ]
     EOF
 rescue StandardError => e
-    error_str = "ERROR MESSAGE --8<------\n"
-    error_str << e.to_s
-    error_str << "\nERROR MESSAGE ------>8--"
-
-    STDERR.puts error_str
+    STDERR.puts e.to_s
     exit(-1)
 end
diff --git a/src/ipamm_mad/remotes/vultr/register_address_range b/src/ipamm_mad/remotes/vultr/register_address_range
index b8677e221e..9c8dce0393 100755
--- a/src/ipamm_mad/remotes/vultr/register_address_range
+++ b/src/ipamm_mad/remotes/vultr/register_address_range
@@ -195,10 +195,6 @@ begin
         ]
     EOF
 rescue StandardError => e
-    error_str = "ERROR MESSAGE --8<------\n"
-    error_str << e.to_s
-    error_str << "\nERROR MESSAGE ------>8--"
-
-    STDERR.puts error_str
+    STDERR.puts e.to_s
     exit(-1)
 end
diff --git a/src/ipamm_mad/remotes/vultr/unregister_address_range b/src/ipamm_mad/remotes/vultr/unregister_address_range
index 236dc8c9f9..895c07abad 100755
--- a/src/ipamm_mad/remotes/vultr/unregister_address_range
+++ b/src/ipamm_mad/remotes/vultr/unregister_address_range
@@ -112,10 +112,6 @@ begin
 
     exit(0)
 rescue StandardError => e
-    error_str = "ERROR MESSAGE --8<------\n"
-    error_str << e.to_s
-    error_str << "\nERROR MESSAGE ------>8--"
-
-    STDERR.puts error_str
+    STDERR.puts e.to_s
     exit(-1)
 end
diff --git a/src/mad/ruby/CommandManager.rb b/src/mad/ruby/CommandManager.rb
index cfd26a4fec..63bba32e19 100644
--- a/src/mad/ruby/CommandManager.rb
+++ b/src/mad/ruby/CommandManager.rb
@@ -34,17 +34,9 @@ require 'base64'
 # * Log messages will be sent to STDOUT
 # * The script will return 0 if it succeded or any other value
 #   if there was a failure
-# * In case of failure the cause of the error will be written to STDERR
-#   wrapped by start and end marks as follows:
-#
-#     ERROR MESSAGE --8<------
-#     error message for the failure
-#     ERROR MESSAGE ------>8--
-
+# * In case of failure the cause of the error will be written to STDERR.
 
 class GenericCommand
-    ERROR_OPEN  = "ERROR MESSAGE --8<------"
-    ERROR_CLOSE = "ERROR MESSAGE ------>8--"
 
     attr_reader :code, :stdout, :stderr, :command
 
@@ -93,8 +85,9 @@ class GenericCommand
             end
 
             log(error_message)
-            @stderr = ERROR_OPEN + "\n" + error_message + "\n" + ERROR_CLOSE
-            @code = 255
+
+            @stderr = error_message
+            @code   = 255
         end
 
         return @code
@@ -102,9 +95,9 @@ class GenericCommand
 
     # Parses error message from +stderr+ output
     def get_error_message
-        tmp=@stderr.scan(/^#{ERROR_OPEN}\n(.*?)#{ERROR_CLOSE}$/m)
-        return "-" if !tmp[0]
-        tmp[0].join(' ').strip
+        return '-' if @stderr.empty?
+
+        @stderr.tr("\n",' ').strip
     end
 
     def to_xml
diff --git a/src/mad/ruby/DriverExecHelper.rb b/src/mad/ruby/DriverExecHelper.rb
index afeb7d1490..7eecc85ec5 100644
--- a/src/mad/ruby/DriverExecHelper.rb
+++ b/src/mad/ruby/DriverExecHelper.rb
@@ -124,31 +124,21 @@ module DriverExecHelper
     # Sends a log message to ONE. The +message+ can be multiline, it will
     # be automatically splitted by lines.
     def log(number, message, all = true)
-        in_error_message=false
-        msg=message.strip
+        msg = message.strip
+
         msg.each_line do |line|
             all ? severity='I' : severity=nil
-            l=line.strip
 
-            if l=='ERROR MESSAGE --8<------'
-                in_error_message=true
-                next
-            elsif l=='ERROR MESSAGE ------>8--'
-                in_error_message=false
-                next
-            else
-                if in_error_message
+            if line.match(/^(ERROR|DEBUG|INFO):(.*)$/)
+                line=Regexp.last_match(2)
+
+                case Regexp.last_match(1)
+                when 'ERROR'
                     severity='E'
-                elsif line.match(/^(ERROR|DEBUG|INFO):(.*)$/)
-                    line=Regexp.last_match(2)
-                    case Regexp.last_match(1)
-                    when 'ERROR'
-                        severity='E'
-                    when 'DEBUG'
-                        severity='D'
-                    when 'INFO'
-                        severity='I'
-                    end
+                when 'DEBUG'
+                    severity='D'
+                when 'INFO'
+                    severity='I'
                 end
             end
 
diff --git a/src/mad/ruby/scripts_common.rb b/src/mad/ruby/scripts_common.rb
index eb52c772bd..7400f17a99 100644
--- a/src/mad/ruby/scripts_common.rb
+++ b/src/mad/ruby/scripts_common.rb
@@ -45,16 +45,7 @@ module OpenNebula
 
     # This function is used to pass error message to the mad
     def self.error_message(message)
-        STDERR.puts format_error_message(message)
-    end
-
-    #This function formats an error message for OpenNebula
-    def self.format_error_message(message)
-        error_str = "ERROR MESSAGE --8<------\n"
-        error_str << message
-        error_str << "\nERROR MESSAGE ------>8--"
-
-        return error_str
+        STDERR.puts message
     end
 
     def self.is_disk?(arg)
diff --git a/src/mad/ruby/ssh_stream.rb b/src/mad/ruby/ssh_stream.rb
index 3c5c90819c..8f3ce0af8c 100644
--- a/src/mad/ruby/ssh_stream.rb
+++ b/src/mad/ruby/ssh_stream.rb
@@ -147,7 +147,7 @@ class SshStream
                             message = "Error connecting to #{@host}"
                             code    = tmp[0][0].to_i
 
-                            @err << OpenNebula.format_error_message(message)
+                            @err << message
 
                             @alive = false
                             break
@@ -229,7 +229,7 @@ class SshStreamCommand < RemotesCommand
         @stderr = @stream.err
 
         if @code != 0
-            log("Command execution fail: #{command}")
+            log("Command execution fail (exit code: #{@code}): #{command}")
         end
 
         log(@stderr)
diff --git a/src/mad/sh/scripts_common.sh b/src/mad/sh/scripts_common.sh
index 78ce29031f..046aeccd35 100644
--- a/src/mad/sh/scripts_common.sh
+++ b/src/mad/sh/scripts_common.sh
@@ -123,12 +123,8 @@ function log_debug
 # This function is used to pass error message to the mad
 function error_message
 {
-    (
-        echo "ERROR MESSAGE --8<------"
-        echo "$1"
-        echo "ERROR MESSAGE ------>8--"
-    ) 1>&2
-}
+    echo "$1" 1>&2
+
 
 # Ensures the code is executed exclusively
 function exclusive
diff --git a/src/oneprovision/lib/provision/utils.rb b/src/oneprovision/lib/provision/utils.rb
index f5fcb79a17..361127f299 100644
--- a/src/oneprovision/lib/provision/utils.rb
+++ b/src/oneprovision/lib/provision/utils.rb
@@ -46,9 +46,6 @@ module OneProvision
 
         class << self
 
-            ERROR_OPEN  = 'ERROR MESSAGE --8<------'
-            ERROR_CLOSE = 'ERROR MESSAGE ------>8--'
-
             # Prints command and options in the debug output
             #
             # @param cmd     [String] Command executed
@@ -95,22 +92,6 @@ module OneProvision
                 raise OneProvisionLoopException, return_code.message if error
             end
 
-            # Gets error message
-            #
-            # @param text [String] Text with error message inside
-            #
-            # @return     [String] Error message
-            def get_error_message(text)
-                msg = '-'
-
-                if text
-                    tmp = text.scan(/^#{ERROR_OPEN}\n(.*?)#{ERROR_CLOSE}$/m)
-                    msg = tmp[0].join(' ').strip if tmp[0]
-                end
-
-                msg
-            end
-
             # Converts XML template to string
             #
             # @param attributes [Hash]    XML attributes
diff --git a/src/vmm_mad/remotes/packet/cancel b/src/vmm_mad/remotes/packet/cancel
index c04eb70f88..a8402d177f 100755
--- a/src/vmm_mad/remotes/packet/cancel
+++ b/src/vmm_mad/remotes/packet/cancel
@@ -65,7 +65,7 @@ begin
     packet_drv.cancel(deploy_id, vm.lcm_state_str)
 
 rescue Exception => e
-    STDERR.puts error_message(<<EOT)
+    STDERR.puts <<EOT
 Cancel of VM #{deploy_id} failed due to "#{e.message}"
 #{e.backtrace}
 EOT
diff --git a/src/vmm_mad/remotes/packet/deploy b/src/vmm_mad/remotes/packet/deploy
index 8044579bae..43ad54408e 100755
--- a/src/vmm_mad/remotes/packet/deploy
+++ b/src/vmm_mad/remotes/packet/deploy
@@ -67,7 +67,7 @@ begin
     puts packet_drv.deploy_vm(id, host, text, vm.lcm_state_str, vm.deploy_id)
 
 rescue Exception => e
-    STDERR.puts error_message(<<EOT)
+    STDERR.puts <<EOT
 Deploy of VM #{id} on Packet host #{host} with #{dfile} failed due to "#{e.message}"
 #{e.backtrace}"
 EOT
diff --git a/src/vmm_mad/remotes/packet/packet_driver.rb b/src/vmm_mad/remotes/packet/packet_driver.rb
index 7cb958f97f..df98c1956f 100644
--- a/src/vmm_mad/remotes/packet/packet_driver.rb
+++ b/src/vmm_mad/remotes/packet/packet_driver.rb
@@ -548,16 +548,6 @@ class PacketDriver
 
 end
 
-###
-
-def error_message(message)
-    error_str = "ERROR MESSAGE --8<------\n"
-    error_str << message
-    error_str << "\nERROR MESSAGE ------>8--"
-
-    error_str
-end
-
 ############################################################################
 #  Module Interface
 #  Interface for probe_db - VirtualMachineDB
diff --git a/src/vmm_mad/remotes/packet/poll b/src/vmm_mad/remotes/packet/poll
index 724afb4ecb..28874a80bd 100755
--- a/src/vmm_mad/remotes/packet/poll
+++ b/src/vmm_mad/remotes/packet/poll
@@ -61,7 +61,7 @@ begin
     packet_drv.poll(deploy_id)
 
 rescue Exception => e
-    STDERR.puts error_message(<<EOT)
+    STDERR.puts <<EOT
 Cannot poll info for VM #{id} on Packet host #{host} due to "#{e.message}"
 #{e.backtrace}"
 EOT
diff --git a/src/vmm_mad/remotes/packet/reboot b/src/vmm_mad/remotes/packet/reboot
index f5d17dcb27..f9ee64ea8d 100755
--- a/src/vmm_mad/remotes/packet/reboot
+++ b/src/vmm_mad/remotes/packet/reboot
@@ -61,7 +61,7 @@ begin
     packet_drv.reboot(deploy_id)
 
 rescue Exception => e
-    STDERR.puts error_message(<<EOT)
+    STDERR.puts <<EOT
 Reboot of VM #{vm_id} on Packet host #{host} failed due to "#{e.message}"
 #{e.backtrace}"
 EOT
diff --git a/src/vmm_mad/remotes/packet/reset b/src/vmm_mad/remotes/packet/reset
index 0e3a167451..2eb65f55cc 100755
--- a/src/vmm_mad/remotes/packet/reset
+++ b/src/vmm_mad/remotes/packet/reset
@@ -61,7 +61,7 @@ begin
     packet_drv.reset(deploy_id)
 
 rescue Exception => e
-    STDERR.puts error_message(<<EOT)
+    STDERR.puts <<EOT
 Reset of VM #{vm_id} on Packet host #{host} failed due to "#{e.message}"
 #{e.backtrace}"
 EOT
diff --git a/src/vmm_mad/remotes/packet/shutdown b/src/vmm_mad/remotes/packet/shutdown
index 242209d16a..d1e1253349 100755
--- a/src/vmm_mad/remotes/packet/shutdown
+++ b/src/vmm_mad/remotes/packet/shutdown
@@ -65,7 +65,7 @@ begin
     packet_drv.shutdown(deploy_id, vm.lcm_state_str)
 
 rescue Exception => e
-    STDERR.puts error_message(<<EOT)
+    STDERR.puts <<EOT
 Shutdown of VM #{vm_id} on Packet host #{host} failed due to "#{e.message}"
 #{e.backtrace}"
 EOT
diff --git a/src/vmm_mad/remotes/vcenter/vcenter_driver.rb b/src/vmm_mad/remotes/vcenter/vcenter_driver.rb
index 9c7cd0c51d..375b4ec105 100644
--- a/src/vmm_mad/remotes/vcenter/vcenter_driver.rb
+++ b/src/vmm_mad/remotes/vcenter/vcenter_driver.rb
@@ -133,19 +133,10 @@ end
 # Helper functions                                                             #
 # ---------------------------------------------------------------------------- #
 
-def error_message(message)
-    error_str = "ERROR MESSAGE --8<------\n"
-    error_str << message
-    error_str << "\nERROR MESSAGE ------>8--"
-
-    error_str
-end
-
 def check_valid(parameter, label)
     return unless parameter.nil? || parameter.empty?
 
-    STDERR.puts error_message("The parameter '#{label}'\
-                               is required for this action.")
+    STDERR.puts "The parameter '#{label}' is required for this action."
     exit(-1)
 end