diff --git a/.travis.yml b/.travis.yml
index c3af3ce..2d8c086 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,9 +2,7 @@
 go:
   - 1.2
   - 1.3
+  - 1.4
   - tip
 install:
-  - go get github.com/stretchr/testify
-  - go get github.com/stvp/go-udp-testing
-  - go get github.com/tobi/airbrake-go
-  - go get github.com/getsentry/raven-go
+  - go get -t ./...
diff --git a/README.md b/README.md
index 32f6dee..8c01870 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
 
 Logrus is a structured logger for Go (golang), completely API compatible with
 the standard library logger. [Godoc][godoc]. **Please note the Logrus API is not
-yet stable (pre 1.0), the core API is unlikely change much but please version
+yet stable (pre 1.0), the core API is unlikely to change much but please version
 control your Logrus to make sure you aren't fetching latest `master` on every
 build.**
 
@@ -33,7 +33,7 @@
 
 With the default `log.Formatter = new(logrus.TextFormatter)` when a TTY is not
 attached, the output is compatible with the
-[l2met](http://r.32k.io/l2met-introduction) format:
+[logfmt](http://godoc.org/github.com/kr/logfmt) format:
 
 ```text
 time="2014-04-20 15:36:23.830442383 -0400 EDT" level="info" msg="A group of walrus emerges from the ocean" animal="walrus" size=10
diff --git a/entry.go b/entry.go
index e164eec..17fe6f7 100644
--- a/entry.go
+++ b/entry.go
@@ -126,6 +126,10 @@
 	}
 }
 
+func (entry *Entry) Warning(args ...interface{}) {
+	entry.Warn(args...)
+}
+
 func (entry *Entry) Error(args ...interface{}) {
 	if entry.Logger.Level >= ErrorLevel {
 		entry.log(ErrorLevel, fmt.Sprint(args...))
diff --git a/logrus_test.go b/logrus_test.go
index 5302542..7f52c6f 100644
--- a/logrus_test.go
+++ b/logrus_test.go
@@ -223,7 +223,7 @@
 
 	err := json.Unmarshal(buffer.Bytes(), &fields)
 	assert.NoError(t, err, "should have decoded first message")
-	assert.Len(t, fields, 4, "should only have msg/time/level/context fields")
+	assert.Equal(t, len(fields), 4, "should only have msg/time/level/context fields")
 	assert.Equal(t, fields["msg"], "looks delicious")
 	assert.Equal(t, fields["context"], "eating raw fish")
 
@@ -233,7 +233,7 @@
 
 	err = json.Unmarshal(buffer.Bytes(), &fields)
 	assert.NoError(t, err, "should have decoded second message")
-	assert.Len(t, fields, 4, "should only have msg/time/level/context fields")
+	assert.Equal(t, len(fields), 4, "should only have msg/time/level/context fields")
 	assert.Equal(t, fields["msg"], "omg it is!")
 	assert.Equal(t, fields["context"], "eating raw fish")
 	assert.Nil(t, fields["fields.msg"], "should not have prefixed previous `msg` entry")
diff --git a/terminal_notwindows.go b/terminal_notwindows.go
index 276447b..80edd32 100644
--- a/terminal_notwindows.go
+++ b/terminal_notwindows.go
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build linux,!appengine darwin freebsd
+// +build linux,!appengine darwin freebsd openbsd
 
 package logrus
 
diff --git a/terminal_openbsd.go b/terminal_openbsd.go
new file mode 100644
index 0000000..d238bfa
--- /dev/null
+++ b/terminal_openbsd.go
@@ -0,0 +1,8 @@
+
+package logrus
+
+import "syscall"
+
+const ioctlReadTermios = syscall.TIOCGETA
+
+type Termios syscall.Termios
