diff --git a/encode.go b/encode.go
index fa3ebc6..c7fcdb2 100644
--- a/encode.go
+++ b/encode.go
@@ -142,8 +142,8 @@
 		panic(err)
 	}
 	e.mappingv(tag, func() {
-		for i, info := range fields.List {
-			value := in.Field(i)
+		for _, info := range fields.List {
+			value := in.Field(info.Num)
 			if info.OmitEmpty && isZero(value) {
 				continue
 			}
diff --git a/encode_test.go b/encode_test.go
index fe1c497..f6a0d0f 100644
--- a/encode_test.go
+++ b/encode_test.go
@@ -97,6 +97,13 @@
 				B string
 			} "a,flow"
 		}{struct{ B string }{"c"}}},
+
+	// Unexported field
+	{"a: 1\n",
+		&struct {
+			u int
+			A int
+		}{0, 1}},
 }
 
 func (s *S) TestMarshal(c *C) {
@@ -141,6 +148,22 @@
 	{"_: !foo\n  a: B\n", "!foo", &marshalTaggedIfaceTest},
 }
 
+func (s *S) TestMarshalTypeCache(c *C) {
+	var data []byte
+	var err error
+	func() {
+		type T struct{ A int }
+		data, err = goyaml.Marshal(&T{})
+		c.Assert(err, IsNil)
+	}()
+	func() {
+		type T struct{ B int }
+		data, err = goyaml.Marshal(&T{})
+		c.Assert(err, IsNil)
+	}()
+	c.Assert(string(data), Equals, "b: 0\n")
+}
+
 type typeWithGetter struct {
 	tag   string
 	value interface{}
diff --git a/goyaml.go b/goyaml.go
index 3de01c0..fa288c9 100644
--- a/goyaml.go
+++ b/goyaml.go
@@ -129,7 +129,7 @@
 //     goyaml.Marshal(&T{F: 1}} // Returns "a: 1\nb: 0\n"
 //
 func Marshal(in interface{}) (out []byte, err error) {
-	defer handleErr(&err)
+	//defer handleErr(&err)
 	e := newEncoder()
 	defer e.destroy()
 	e.marshal("", reflect.ValueOf(in))
@@ -155,7 +155,7 @@
 	Flow      bool
 }
 
-var fieldMap = make(map[string]*structFields)
+var fieldMap = make(map[reflect.Type]*structFields)
 var fieldMapMutex sync.RWMutex
 
 type externalPanic string
@@ -165,12 +165,8 @@
 }
 
 func getStructFields(st reflect.Type) (*structFields, error) {
-	path := st.PkgPath()
-	name := st.Name()
-
-	fullName := path + "." + name
 	fieldMapMutex.RLock()
-	fields, found := fieldMap[fullName]
+	fields, found := fieldMap[st]
 	fieldMapMutex.RUnlock()
 	if found {
 		return fields, nil
@@ -243,12 +239,9 @@
 
 	fields = &structFields{fieldsMap, fieldsList[:len(fieldsMap)]}
 
-	if fullName != "." {
-		fieldMapMutex.Lock()
-		fieldMap[fullName] = fields
-		fieldMapMutex.Unlock()
-	}
-
+	fieldMapMutex.Lock()
+	fieldMap[st] = fields
+	fieldMapMutex.Unlock()
 	return fields, nil
 }
 
