diff --git a/README.md b/README.md
index 0fff2553..695be1fb 100644
--- a/README.md
+++ b/README.md
@@ -31,8 +31,15 @@ matterbridge
 3) Now you can run matterbridge. 
 
 ```
-Usage of matterbridge:
-  -conf="matterbridge.conf": config file
+Usage of ./matterbridge:
+  -conf string
+        config file (default "matterbridge.conf")
+  -debug
+        enable debug
+  -plus
+        running using API instead of webhooks
+  -version
+        show version
 ```
 
 Matterbridge will:
@@ -66,11 +73,11 @@ IgnoreNicks="ircspammer1 ircspammer2"
 [mattermost]
 #url is your incoming webhook url (account settings - integrations - incoming webhooks)
 url="http://mattermost.yourdomain.com/hooks/incomingwebhookkey"  
-#port the bridge webserver will listen on
-port=9999
-#address the webserver will bind to
-BindAddress="0.0.0.0"
-showjoinpart=true #show irc users joining and parting
+#address the webserver (which receives the outgoing webhook from mattermost) will listen on
+#(account settings - integrations - outgoing webhooks)
+BindAddress="0.0.0.0:9999"
+#show irc users joining and parting
+showjoinpart=true 
 #the token you get from the outgoing webhook in mattermost.
 Token="outgoingwebhooktoken1"
 #disable certificate checking (selfsigned certificates)
diff --git a/bridge/bridge.go b/bridge/bridge.go
index 7f318c3c..8e2b1393 100644
--- a/bridge/bridge.go
+++ b/bridge/bridge.go
@@ -79,7 +79,7 @@ func NewBridge(name string, config *Config, kind string) *Bridge {
 	}
 	if kind == Legacy {
 		b.mh = matterhook.New(b.Config.Mattermost.URL,
-			matterhook.Config{Port: b.Config.Mattermost.Port, Token: b.Config.Mattermost.Token,
+			matterhook.Config{Token: b.Config.Mattermost.Token,
 				InsecureSkipVerify: b.Config.Mattermost.SkipTLSVerify,
 				BindAddress:        b.Config.Mattermost.BindAddress})
 	} else {
@@ -182,7 +182,7 @@ func (b *Bridge) ircNickFormat(nick string) string {
 }
 
 func (b *Bridge) handlePrivMsg(event *irc.Event) {
-	flog.irc.Debugf("handlePrivMsg() %s %s", event.Nick, event.Message)
+	flog.irc.Debugf("handlePrivMsg() %s %s", event.Nick, event.Message())
 	if b.ignoreMessage(event.Nick, event.Message(), "irc") {
 		return
 	}
diff --git a/matterhook/matterhook.go b/matterhook/matterhook.go
index f30d44b7..ef983e7b 100644
--- a/matterhook/matterhook.go
+++ b/matterhook/matterhook.go
@@ -10,8 +10,8 @@ import (
 	"io"
 	"io/ioutil"
 	"log"
+	"net"
 	"net/http"
-	"strconv"
 )
 
 // OMessage for mattermost incoming webhook. (send to mattermost)
@@ -51,7 +51,6 @@ type Client struct {
 
 // Config for client.
 type Config struct {
-	Port               int    // Port to listen on.
 	BindAddress        string // Address to listen on
 	Token              string // Only allow this token from Mattermost. (Allow everything when empty)
 	InsecureSkipVerify bool   // disable certificate checking
@@ -61,10 +60,10 @@ type Config struct {
 // New Mattermost client.
 func New(url string, config Config) *Client {
 	c := &Client{Url: url, In: make(chan IMessage), Out: make(chan OMessage), Config: config}
-	if c.Port == 0 {
-		c.Port = 9999
+	_, _, err := net.SplitHostPort(c.BindAddress)
+	if err != nil {
+		log.Fatalf("incorrect bindaddress %s", c.BindAddress)
 	}
-	c.BindAddress += ":"
 	tr := &http.Transport{
 		TLSClientConfig: &tls.Config{InsecureSkipVerify: config.InsecureSkipVerify},
 	}
@@ -79,8 +78,8 @@ func New(url string, config Config) *Client {
 func (c *Client) StartServer() {
 	mux := http.NewServeMux()
 	mux.Handle("/", c)
-	log.Printf("Listening on http://%v:%v...\n", c.BindAddress, c.Port)
-	if err := http.ListenAndServe((c.BindAddress + strconv.Itoa(c.Port)), mux); err != nil {
+	log.Printf("Listening on http://%v...\n", c.BindAddress)
+	if err := http.ListenAndServe(c.BindAddress, mux); err != nil {
 		log.Fatal(err)
 	}
 }