diff --git a/hooks/sentry/README.md b/hooks/sentry/README.md
index ba64ed4..a409f3b 100644
--- a/hooks/sentry/README.md
+++ b/hooks/sentry/README.md
@@ -40,3 +40,22 @@
 is logging the event (hostname.example.com)
 - logger is the part of the application which is logging the event.
 In go this usually means setting it to the name of the package.
+
+## Timeout
+
+`Timeout` is the time the sentry hook will wait for a response
+from the sentry server.
+
+If this time elapses with no response from
+the server an error will be returned.
+
+If `Timeout` is set to 0 the SentryHook will not wait for a reply
+and will assume a correct delivery.
+
+The SentryHook has a default timeout of `100 milliseconds` when created
+with a call to `NewSentryHook`. This can be changed by assigning a value to the `Timeout` field:
+
+```go
+hook, _ := logrus_sentry.NewSentryHook(...)
+hook.Timeout = 20*time.Seconds
+```
diff --git a/hooks/sentry/sentry.go b/hooks/sentry/sentry.go
index c91a4b6..379f281 100644
--- a/hooks/sentry/sentry.go
+++ b/hooks/sentry/sentry.go
@@ -8,10 +8,6 @@
 	"github.com/getsentry/raven-go"
 )
 
-const (
-	timeout = 100 * time.Millisecond
-)
-
 var (
 	severityMap = map[logrus.Level]raven.Severity{
 		logrus.DebugLevel: raven.DEBUG,
@@ -42,18 +38,24 @@
 
 // SentryHook delivers logs to a sentry server.
 type SentryHook struct {
+	// Timeout sets the time to wait for a delivery error from the sentry server.
+	// If this is set to zero the server will not wait for any response and will
+	// consider the message correctly sent
+	Timeout time.Duration
+
 	client *raven.Client
 	levels []logrus.Level
 }
 
 // NewSentryHook creates a hook to be added to an instance of logger
 // and initializes the raven client.
+// This method sets the timeout to 100 milliseconds.
 func NewSentryHook(DSN string, levels []logrus.Level) (*SentryHook, error) {
 	client, err := raven.NewClient(DSN, nil)
 	if err != nil {
 		return nil, err
 	}
-	return &SentryHook{client, levels}, nil
+	return &SentryHook{100 * time.Millisecond, client, levels}, nil
 }
 
 // Called when an event should be sent to sentry
@@ -79,12 +81,15 @@
 	packet.Extra = map[string]interface{}(d)
 
 	_, errCh := hook.client.Capture(packet, nil)
-	timeoutCh := time.After(timeout)
-	select {
-	case err := <-errCh:
-		return err
-	case <-timeoutCh:
-		return fmt.Errorf("no response from sentry server in %s", timeout)
+	timeout := hook.Timeout
+	if timeout != 0 {
+		timeoutCh := time.After(timeout)
+		select {
+		case err := <-errCh:
+			return err
+		case <-timeoutCh:
+			return fmt.Errorf("no response from sentry server in %s", timeout)
+		}
 	}
 	return nil
 }
