Fixed struct comparisons with the Equals checker.
diff --git a/checkers.go b/checkers.go
index b1ab49b..c5e5d2f 100644
--- a/checkers.go
+++ b/checkers.go
@@ -201,14 +201,7 @@
 
 func (checker *equalsChecker) Check(obtained, expected interface{}) (
         result bool, error string) {
-    // This will use a fast path to check for equality of normal types,
-    // and then fallback to reflect.DeepEqual if things go wrong.
-    defer func() {
-        if recover() != nil {
-            result = reflect.DeepEqual(obtained, expected)
-        }
-    }()
-    return obtained == expected, ""
+    return reflect.DeepEqual(obtained, expected), ""
 }
 
 
diff --git a/checkers_test.go b/checkers_test.go
index 79d1671..db7d21c 100644
--- a/checkers_test.go
+++ b/checkers_test.go
@@ -83,6 +83,10 @@
 }
 
 
+type simpleStruct struct {
+    i int
+}
+
 func (s *CheckersS) TestEquals(c *gocheck.C) {
     testInfo(c, gocheck.Equals, "Equals", "obtained", "expected")
 
@@ -99,6 +103,14 @@
     // Arrays
     testCheck(c, gocheck.Equals, []byte{1,2}, []byte{1,2}, true, "")
     testCheck(c, gocheck.Equals, []byte{1,2}, []byte{1,3}, false, "")
+
+    // Struct values
+    testCheck(c, gocheck.Equals, simpleStruct{1}, simpleStruct{1}, true, "")
+    testCheck(c, gocheck.Equals, simpleStruct{1}, simpleStruct{2}, false, "")
+
+    // Struct pointers
+    testCheck(c, gocheck.Equals, &simpleStruct{1}, &simpleStruct{1}, true, "")
+    testCheck(c, gocheck.Equals, &simpleStruct{1}, &simpleStruct{2}, false, "")
 }
 
 func (s *CheckersS) TestMatches(c *gocheck.C) {