diff --git a/debian/changelog b/debian/changelog
index 4210572..2153a6f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,13 @@
-golang-github-philhofer-fwd (1.1.1-2) UNRELEASED; urgency=medium
+golang-github-philhofer-fwd (1.1.1+git20210816.1.8be6da3-1) UNRELEASED; urgency=medium
 
+  [ Tianon Gravi ]
   * Team upload.
   * Remove self from Uploaders
 
- -- Tianon Gravi <tianon@debian.org>  Wed, 23 Feb 2022 11:11:32 -0800
+  [ Debian Janitor ]
+  * New upstream snapshot.
+
+ -- Tianon Gravi <tianon@debian.org>  Thu, 24 Feb 2022 02:09:28 -0000
 
 golang-github-philhofer-fwd (1.1.1-1) unstable; urgency=medium
 
diff --git a/writer_tinygo.go b/writer_tinygo.go
new file mode 100644
index 0000000..3b06e99
--- /dev/null
+++ b/writer_tinygo.go
@@ -0,0 +1,18 @@
+// +build tinygo
+
+package fwd
+
+import (
+	"reflect"
+	"unsafe"
+)
+
+// unsafe cast string as []byte
+func unsafestr(b string) []byte {
+	l := uintptr(len(b))
+	return *(*[]byte)(unsafe.Pointer(&reflect.SliceHeader{
+		Len:  l,
+		Cap:  l,
+		Data: (*reflect.StringHeader)(unsafe.Pointer(&b)).Data,
+	}))
+}
diff --git a/writer_unsafe.go b/writer_unsafe.go
index a0bf453..8ab5a4e 100644
--- a/writer_unsafe.go
+++ b/writer_unsafe.go
@@ -1,4 +1,4 @@
-// +build !appengine
+// +build !appengine,!tinygo
 
 package fwd
 
@@ -8,11 +8,12 @@ import (
 )
 
 // unsafe cast string as []byte
-func unsafestr(b string) []byte {
-	l := len(b)
-	return *(*[]byte)(unsafe.Pointer(&reflect.SliceHeader{
-		Len:  l,
-		Cap:  l,
-		Data: (*reflect.StringHeader)(unsafe.Pointer(&b)).Data,
-	}))
+func unsafestr(s string) []byte {
+	var b []byte
+	sHdr := (*reflect.StringHeader)(unsafe.Pointer(&s))
+	bHdr := (*reflect.SliceHeader)(unsafe.Pointer(&b))
+	bHdr.Data = sHdr.Data
+	bHdr.Len = sHdr.Len
+	bHdr.Cap = sHdr.Len
+	return b
 }