    # File lib/phusion_passenger/utils.rb, line 147
            def unmarshal_exception(data)
                    hash = Marshal.load(data)
                    if hash[:is_initialization_error]
                            if hash[:child_exception]
                                    child_exception = unmarshal_exception(hash[:child_exception])
                            else
                                    child_exception = nil
                            end

                            exception = Marshal.load(hash[:exception])
                            exception.child_exception = child_exception
                            return exception
                    else
                            begin
                                    return Marshal.load(hash[:exception])
                            rescue ArgumentError, TypeError
                                    return UnknownError.new(hash[:message], hash[:class], hash[:backtrace])
                            end
                    end
            end