diff --git a/decode.go b/decode.go
index 5640e20..2e00362 100644
--- a/decode.go
+++ b/decode.go
@@ -375,11 +375,11 @@
 	if set := d.setter("!!seq", &out, &good); set != nil {
 		defer set()
 	}
+	var iface reflect.Value
 	if out.Kind() == reflect.Interface {
 		// No type hints. Will have to use a generic sequence.
-		iface := out
+		iface = out
 		out = settableValueOf(make([]interface{}, 0))
-		iface.Set(out)
 	}
 
 	if out.Kind() != reflect.Slice {
@@ -394,6 +394,9 @@
 			out.Set(reflect.Append(out, e))
 		}
 	}
+	if iface.IsValid() {
+		iface.Set(out)
+	}
 	return true
 }
 
diff --git a/decode_test.go b/decode_test.go
index ad3b898..aaa950c 100644
--- a/decode_test.go
+++ b/decode_test.go
@@ -41,7 +41,7 @@
 	{"fixed: 685_230.15", map[string]interface{}{"fixed": 685230.15}},
 	//{"sexa: 190:20:30.15", map[string]interface{}{"sexa": 0}}, // Unsupported
 	{"neginf: -.inf", map[string]interface{}{"neginf": math.Inf(-1)}},
-	{"notanum: .NaN", map[string]interface{}{"notanum": math.NaN()}},
+	//{"notanum: .NaN", map[string]interface{}{"notanum": math.NaN()}}, // Equality of NaN fails.
 	{"fixed: 685_230.15", map[string]float64{"fixed": 685230.15}},
 
 	// Bools from spec
@@ -136,11 +136,18 @@
 			value = pv.Interface()
 		}
 		err := goyaml.Unmarshal([]byte(item.data), value)
-		c.Assert(err, IsNil, Bug("Item #%d", i))
-		c.Assert(value, Equals, item.value)
+		c.Assert(err, IsNil, Commentf("Item #%d", i))
+		c.Assert(value, DeepEquals, item.value)
 	}
 }
 
+func (s *S) TestUnmarshalNaN(c *C) {
+	value := map[string]interface{}{}
+	err := goyaml.Unmarshal([]byte("notanum: .NaN"), &value)
+	c.Assert(err, IsNil)
+	c.Assert(math.IsNaN(value["notanum"].(float64)), Equals, true)
+}
+
 var unmarshalErrorTests = []struct {
 	data, error string
 }{
@@ -155,7 +162,7 @@
 	for _, item := range unmarshalErrorTests {
 		var value interface{}
 		err := goyaml.Unmarshal([]byte(item.data), &value)
-		c.Assert(err, ErrorMatches, item.error, Bug("Partial unmarshal: %#v", value))
+		c.Assert(err, ErrorMatches, item.error, Commentf("Partial unmarshal: %#v", value))
 	}
 }
 
@@ -198,9 +205,9 @@
 		err := goyaml.Unmarshal([]byte(item.data), obj)
 		c.Assert(err, IsNil)
 		c.Assert(obj.Field, NotNil,
-			Bug("Pointer not initialized (%#v)", item.value))
+			Commentf("Pointer not initialized (%#v)", item.value))
 		c.Assert(obj.Field.tag, Equals, item.tag)
-		c.Assert(obj.Field.value, Equals, item.value)
+		c.Assert(obj.Field.value, DeepEquals, item.value)
 	}
 }
 
@@ -211,7 +218,7 @@
 	c.Assert(obj.tag, Equals, setterTests[0].tag)
 	value, ok := obj.value.(map[interface{}]interface{})
 	c.Assert(ok, Equals, true)
-	c.Assert(value["_"], Equals, setterTests[0].value)
+	c.Assert(value["_"], DeepEquals, setterTests[0].value)
 }
 
 func (s *S) TestUnmarshalWithFalseSetterIgnoresValue(c *C) {
