diff --git a/v1/worker.go b/v1/worker.go
index <HASH>..<HASH> 100644
--- a/v1/worker.go
+++ b/v1/worker.go
@@ -1,7 +1,6 @@
 package machinery
 
 import (
-	"errors"
 	"fmt"
 	"log"
 	"reflect"
@@ -89,7 +88,7 @@ func (worker *Worker) Process(signature *signatures.TaskSignature) error {
 	// Call the task passing in the correct arguments
 	results := reflectedTask.Call(relfectedArgs)
 	if !results[1].IsNil() {
-		return worker.finalizeError(signature, errors.New(results[1].String()))
+		return worker.finalizeError(signature, results[1].Interface().(error))
 	}
 
 	return worker.finalizeSuccess(signature, results[0])
Fixed a problem with converting reflection values to an error.