diff --git a/scannerc.go b/scannerc.go
index a7ae55c..1066c4d 100644
--- a/scannerc.go
+++ b/scannerc.go
@@ -513,19 +513,8 @@
 
 // Copy a character to a string buffer and advance pointers.
 func read(parser *yaml_parser_t, s *[]byte) bool {
-	//w := width(parser.buffer[parser.buffer_pos])
-	b := parser.buffer[parser.buffer_pos]
-	w := 0
-	switch {
-	case b&0x80 == 0x00:
-		w = 1
-	case b&0xE0 == 0xC0:
-		w = 2
-	case b&0xF0 == 0xE0:
-		w = 3
-	case b&0xF8 == 0xF0:
-		w = 4
-	default:
+	w := width(parser.buffer[parser.buffer_pos])
+	if w == 0 {
 		panic("invalid character sequence")
 	}
 	if len(*s) == 0 {
@@ -534,10 +523,11 @@
 	if w == 1 && len(*s)+w <= cap(*s) {
 		*s = (*s)[:len(*s)+1]
 		(*s)[len(*s)-1] = parser.buffer[parser.buffer_pos]
+		parser.buffer_pos++
 	} else {
 		*s = append(*s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...)
+		parser.buffer_pos += w
 	}
-	parser.buffer_pos += w
 	parser.mark.index++
 	parser.mark.column++
 	parser.unread--
diff --git a/yamlprivateh.go b/yamlprivateh.go
index f5325a6..fd8414b 100644
--- a/yamlprivateh.go
+++ b/yamlprivateh.go
@@ -154,15 +154,20 @@
 
 // Determine the width of the character.
 func width(b byte) int {
-	switch {
-	case b&0x80 == 0x00:
+	// Don't replace these by a switch without first
+	// confirming that it is being inlined.
+	if b&0x80 == 0x00 {
 		return 1
-	case b&0xE0 == 0xC0:
+	}
+	if b&0xE0 == 0xC0 {
 		return 2
-	case b&0xF0 == 0xE0:
+	}
+	if b&0xF0 == 0xE0 {
 		return 3
-	case b&0xF8 == 0xF0:
+	}
+	if b&0xF8 == 0xF0 {
 		return 4
 	}
 	return 0
+
 }
