     )
   else if task.session.subtask.name is 'getParameterValues'
     if methodResponse.faultcode?
-      # Ignore GetParameterValues errors. A workaround for the crappy Seewon devices.
-      methodResponse = {parameterList : {}}
+      task.fault = methodResponse
+      return callback(null, STATUS_FAULT)
 
     this.getParameterValues(task.session.subtask, methodResponse, (err, status, cwmpResponse, deviceUpdates) ->
       callback(err, status, cwmpResponse, deviceUpdates)

                    task.session.appliedParameterValues.push([p1[0], v, t])

          if methodResponse.faultcode?
            # Ignore GetParameterValues errors. A workaround for the crappy Seewon devices.
            methodResponse = {parameterList : {}}

          if status & STATUS_COMPLETED and task.session.appliedParameterValues.length > 0
            task.session.subtask = {name : 'setParameterValues', parameterValues : task.session.appliedParameterValues}


      methodRequest = {
        type : 'Download',
        fileType : file.metadata.fileType,
        fileSize : file.length,
        url : "http://#{config.FILES_IP}:#{config.FILES_PORT}/#{encodeURIComponent(file.filename)}",
        successUrl : task.successUrl,
        failureUrl : task.failureUrl
      }
