diff --git a/unicodedomino.sty b/unicodedomino.sty
index 8124b00587b31e8fadeea17ca420ac80aa7ae6f3..90447e347272e2cbe3f9855914608b72684236a4 100644
--- a/unicodedomino.sty
+++ b/unicodedomino.sty
@@ -28,7 +28,7 @@
 % makes all UTF-8 available in listings.
 
 \NeedsTeXFormat{LaTeX2e}%
-\ProvidesPackage{unicodedomino}[2018/08/06 1.5 Domino for unknown codepoints]%
+\ProvidesPackage{unicodedomino}[2018/08/06 1.6 Domino for unknown codepoints]%
 \makeatletter%
 
 \ifx\numexpr\@undefined%
@@ -62,16 +62,31 @@
 
 % collect octet tokens, trim them and pass them on to handler
 \long\def\UTFviii@two@octets#1#2{%
- \edef\unicodedomino@tmp{#1\unicodedomino@last{\string#2}}%
- \expandafter\unicodedomino@octets\unicodedomino@tmp\empty%
+ \ifx\protect\@typeset@protect%
+  \edef\unicodedomino@tmp{#1\unicodedomino@last{\string#2}}%
+  \expandafter\unicodedomino@octets\unicodedomino@tmp\empty%
+ \else%
+  % protected, just write the original multibyte character
+  \string#1\string#2%
+ \fi%
 }%
 \long\def\UTFviii@three@octets#1#2#3{%
- \edef\unicodedomino@tmp{#1\unicodedomino@last{\string#2}\unicodedomino@last{\string#3}}%
- \expandafter\unicodedomino@octets\unicodedomino@tmp\empty%
+ \ifx\protect\@typeset@protect%
+  \edef\unicodedomino@tmp{#1\unicodedomino@last{\string#2}\unicodedomino@last{\string#3}}%
+  \expandafter\unicodedomino@octets\unicodedomino@tmp\empty%
+ \else%
+  % protected, just write the original multibyte character
+  \string#1\string#2\string#3%
+ \fi%
 }%
 \long\def\UTFviii@four@octets#1#2#3#4{%
- \edef\unicodedomino@tmp{#1\unicodedomino@last{\string#2}\unicodedomino@last{\string#3}\unicodedomino@last{\string#4}}%
- \expandafter\unicodedomino@octets\unicodedomino@tmp\empty%
+ \ifx\protect\@typeset@protect%
+  \edef\unicodedomino@tmp{#1\unicodedomino@last{\string#2}\unicodedomino@last{\string#3}\unicodedomino@last{\string#4}}%
+  \expandafter\unicodedomino@octets\unicodedomino@tmp\empty%
+ \else%
+  % protected, just write the original multibyte character
+  \string#1\string#2\string#3\string#4%
+ \fi%
 }%
 
 % handle trimmed octets
@@ -81,32 +96,26 @@
 
 % main handler
 \def\UTFviii@defined#1{%
- \ifx\protect\@typeset@protect%
-  % not protected
-  \ifx#1\relax%
-   % unknown character
-   \if\relax\expandafter\UTFviii@checkseq\string#1\empty\relax%
-    % valid codepoint / multibyte sequence
-    \PackageWarning{inputenc}{%
-     Unicode character \expandafter\UTFviii@splitcsname\string#1\relax\space%
-     not set up for use\MessageBreak with LaTeX, replacing%
-    }%
-    % note: warning is the same as in utf8ienc.dtx v1.2d except
-    % with the string “, replacing” added at the end
-    \expandafter\unicodedomino@domino\string#1\relax%
-   \else%
-    % invalid multibyte character
-    \PackageError{inputenc}{Invalid UTF-8 byte sequence:%
-     \expandafter\UTFviii@splitseq\string#1\relax}%
-     \UTFviii@invalid@help
-   \fi%
+ \ifx#1\relax%
+  % unknown character
+  \if\relax\expandafter\UTFviii@checkseq\string#1\empty\relax%
+   % valid codepoint / multibyte sequence
+   \PackageWarning{inputenc}{%
+    Unicode character \expandafter\UTFviii@splitcsname\string#1\relax\space%
+    not set up for use\MessageBreak with LaTeX, replacing%
+   }%
+   % note: warning is the same as in utf8ienc.dtx v1.2d except
+   % with the string “, replacing” added at the end
+   \expandafter\unicodedomino@domino\string#1\relax%
   \else%
-   % known character, expand
-   \expandafter#1%
+   % invalid multibyte character
+   \PackageError{inputenc}{Invalid UTF-8 byte sequence:%
+    \expandafter\UTFviii@splitseq\string#1\relax}%
+    \UTFviii@invalid@help
   \fi%
  \else%
-  % protected, just write the original multibyte character
-  \expandafter\@gobblefour\string#1%
+  % known character, expand
+  \expandafter#1%
  \fi%
 }%