diff --git a/tests/Makefile.am b/tests/Makefile.am
index bd9c8fcabb45481d19cbdc14b516bcc7bc98e55c_dGVzdHMvTWFrZWZpbGUuYW0=..216da731f7f2aec9957bc76dec773ce6a2edca06_dGVzdHMvTWFrZWZpbGUuYW0= 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -44,6 +44,7 @@
 dist-hook:
 	cp -a $(srcdir)/REC $(distdir)
 	cp -a $(srcdir)/REC2 $(distdir)
+	cp -a $(srcdir)/encoding $(distdir)
 	cp -a $(srcdir)/exslt $(distdir)
 	cp -a $(srcdir)/extensions $(distdir)
 	cp -a $(srcdir)/general $(distdir)
diff --git a/tests/encoding/bug-146.out b/tests/encoding/bug-146.out
new file mode 100644
index 0000000000000000000000000000000000000000..216da731f7f2aec9957bc76dec773ce6a2edca06_dGVzdHMvZW5jb2RpbmcvYnVnLTE0Ni5vdXQ=
--- /dev/null
+++ b/tests/encoding/bug-146.out
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<root>
+  <colls COL_COD="PT" COL_NAME="����" CURR_ID_0="" CURR_ID_1="" CURR_ID_2="" CURR_ID_3="">
+    <color COL_ID="24007" TITLE="������" RU_CODE=""/>
+  </colls>
+</root>
diff --git a/tests/encoding/bug-146.xml b/tests/encoding/bug-146.xml
new file mode 100644
index 0000000000000000000000000000000000000000..216da731f7f2aec9957bc76dec773ce6a2edca06_dGVzdHMvZW5jb2RpbmcvYnVnLTE0Ni54bWw=
--- /dev/null
+++ b/tests/encoding/bug-146.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<!-- edited with XMLSPY v2004 rel. 2 U (http://www.xmlspy.com) by Victor 
+Prylipko (Linia) -->
+<root>
+    <colls COL_COD="PT" COL_NAME="����" CURR_ID_0="" CURR_ID_1="" CURR_ID_2="" 
+CURR_ID_3="">
+        <goodcoll CODE="2655" ART="PA310ST" NAME="�������� ������ ��� �310 ���" 
+WEIGHT="10" VOLUME="0.09" GABS_W="72" GABS_H="112" GABS_D="0.4" SH_DESC="" 
+SUPP_ART="PA310ST" NUM="0" COL_COD="PT" 
+IMAGE_="/images/goods/image/PA310ST.gif" 
+SCHEMA_="/images/goods/schema/PA310ST.gif">
+            <currency CURRENCY_="RUR" OPT="1" ROZN="2" ZAKUP="3" IN="4"/>
+            <currency CURRENCY_="USD" OPT="2" ROZN="3" ZAKUP="4" IN="5"/>
+            <goodcomb GOOD_ID="63647" NUM_COLOR="0" COL_ID="24007" 
+TITLE="������" COEF="0" ABS_COEF="0" RU_CODE="" EN_CODE="" PROPNAME_="C" 
+MODEL_="">
+                <ost NUM_TIP="0" TIP="0"/>
+                <ost NUM_TIP="2" TIP="-3"/>
+                <ost NUM_TIP="4" TIP="-4"/>
+                <ost NUM_TIP="5" TIP="-4"/>
+                <ost NUM_TIP="6" TIP="-4"/>
+                <ost NUM_TIP="7" TIP="-3"/>
+                <ost NUM_TIP="8" TIP="-3"/>
+                <ost NUM_TIP="9" TIP="-3"/>
+            </goodcomb>
+        </goodcoll>
+    </colls>
+</root>
diff --git a/tests/encoding/bug-146.xsl b/tests/encoding/bug-146.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..216da731f7f2aec9957bc76dec773ce6a2edca06_dGVzdHMvZW5jb2RpbmcvYnVnLTE0Ni54c2w=
--- /dev/null
+++ b/tests/encoding/bug-146.xsl
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="xml" encoding="windows-1251" indent="yes"/>
+<xsl:strip-space elements="*"/>
+<xsl:key name="EMPTY_EN_CODE_COLLS" match="/root/colls/goodcoll/goodcomb/@COL_ID
+[../@EN_CODE = '']" use="../../../@COL_COD"/>
+<xsl:key name="EMPTY_EN_CODE_COLRS" match="/root/colls/goodcoll/goodcomb/@COL_ID
+[../@EN_CODE = '']" use="concat(.,':',../../../@COL_COD)"/>
+<xsl:template match="/">
+<root>
+ <xsl:for-each select="/root/colls[key('EMPTY_EN_CODE_COLLS',@COL_COD)]">
+  <xsl:copy>
+   <xsl:copy-of select="@*"/>
+   <xsl:for-each select="key('EMPTY_EN_CODE_COLLS',@COL_COD)[generate-id(.) = 
+generate-id(key('EMPTY_EN_CODE_COLRS',concat(.,':',../../../@COL_COD)))]">
+    <color>
+     <xsl:copy-of select="../@TITLE | ../@RU_CODE | ."/>
+    </color>
+   </xsl:for-each>
+  </xsl:copy>
+ </xsl:for-each>
+</root>
+</xsl:template>
+</xsl:stylesheet>
diff --git a/tests/general/bug-146.out b/tests/general/bug-146.out
deleted file mode 100644
index bd9c8fcabb45481d19cbdc14b516bcc7bc98e55c_dGVzdHMvZ2VuZXJhbC9idWctMTQ2Lm91dA==..0000000000000000000000000000000000000000
--- a/tests/general/bug-146.out
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<root>
-  <colls COL_COD="PT" COL_NAME="����" CURR_ID_0="" CURR_ID_1="" CURR_ID_2="" CURR_ID_3="">
-    <color COL_ID="24007" TITLE="������" RU_CODE=""/>
-  </colls>
-</root>
diff --git a/tests/general/bug-146.xml b/tests/general/bug-146.xml
deleted file mode 100644
index bd9c8fcabb45481d19cbdc14b516bcc7bc98e55c_dGVzdHMvZ2VuZXJhbC9idWctMTQ2LnhtbA==..0000000000000000000000000000000000000000
--- a/tests/general/bug-146.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<!-- edited with XMLSPY v2004 rel. 2 U (http://www.xmlspy.com) by Victor 
-Prylipko (Linia) -->
-<root>
-    <colls COL_COD="PT" COL_NAME="����" CURR_ID_0="" CURR_ID_1="" CURR_ID_2="" 
-CURR_ID_3="">
-        <goodcoll CODE="2655" ART="PA310ST" NAME="�������� ������ ��� �310 ���" 
-WEIGHT="10" VOLUME="0.09" GABS_W="72" GABS_H="112" GABS_D="0.4" SH_DESC="" 
-SUPP_ART="PA310ST" NUM="0" COL_COD="PT" 
-IMAGE_="/images/goods/image/PA310ST.gif" 
-SCHEMA_="/images/goods/schema/PA310ST.gif">
-            <currency CURRENCY_="RUR" OPT="1" ROZN="2" ZAKUP="3" IN="4"/>
-            <currency CURRENCY_="USD" OPT="2" ROZN="3" ZAKUP="4" IN="5"/>
-            <goodcomb GOOD_ID="63647" NUM_COLOR="0" COL_ID="24007" 
-TITLE="������" COEF="0" ABS_COEF="0" RU_CODE="" EN_CODE="" PROPNAME_="C" 
-MODEL_="">
-                <ost NUM_TIP="0" TIP="0"/>
-                <ost NUM_TIP="2" TIP="-3"/>
-                <ost NUM_TIP="4" TIP="-4"/>
-                <ost NUM_TIP="5" TIP="-4"/>
-                <ost NUM_TIP="6" TIP="-4"/>
-                <ost NUM_TIP="7" TIP="-3"/>
-                <ost NUM_TIP="8" TIP="-3"/>
-                <ost NUM_TIP="9" TIP="-3"/>
-            </goodcomb>
-        </goodcoll>
-    </colls>
-</root>
diff --git a/tests/general/bug-146.xsl b/tests/general/bug-146.xsl
deleted file mode 100644
index bd9c8fcabb45481d19cbdc14b516bcc7bc98e55c_dGVzdHMvZ2VuZXJhbC9idWctMTQ2LnhzbA==..0000000000000000000000000000000000000000
--- a/tests/general/bug-146.xsl
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-<xsl:output method="xml" encoding="windows-1251" indent="yes"/>
-<xsl:strip-space elements="*"/>
-<xsl:key name="EMPTY_EN_CODE_COLLS" match="/root/colls/goodcoll/goodcomb/@COL_ID
-[../@EN_CODE = '']" use="../../../@COL_COD"/>
-<xsl:key name="EMPTY_EN_CODE_COLRS" match="/root/colls/goodcoll/goodcomb/@COL_ID
-[../@EN_CODE = '']" use="concat(.,':',../../../@COL_COD)"/>
-<xsl:template match="/">
-<root>
- <xsl:for-each select="/root/colls[key('EMPTY_EN_CODE_COLLS',@COL_COD)]">
-  <xsl:copy>
-   <xsl:copy-of select="@*"/>
-   <xsl:for-each select="key('EMPTY_EN_CODE_COLLS',@COL_COD)[generate-id(.) = 
-generate-id(key('EMPTY_EN_CODE_COLRS',concat(.,':',../../../@COL_COD)))]">
-    <color>
-     <xsl:copy-of select="../@TITLE | ../@RU_CODE | ."/>
-    </color>
-   </xsl:for-each>
-  </xsl:copy>
- </xsl:for-each>
-</root>
-</xsl:template>
-</xsl:stylesheet>
diff --git a/tests/runtest.c b/tests/runtest.c
index bd9c8fcabb45481d19cbdc14b516bcc7bc98e55c_dGVzdHMvcnVudGVzdC5j..216da731f7f2aec9957bc76dec773ce6a2edca06_dGVzdHMvcnVudGVzdC5j 100644
--- a/tests/runtest.c
+++ b/tests/runtest.c
@@ -680,6 +680,10 @@
       xsltTest, "general", "./*.xsl", 0 },
     { "general tests without dictionaries",
       xsltTest, "general", "./*.xsl", XML_PARSE_NODICT },
+#if defined(LIBXML_ICONV_ENABLED) || defined(LIBXML_ICU_ENABLED)
+    { "encoding tests",
+      xsltTest, "encoding", "./*.xsl", 0 },
+#endif
     { "documents tests",
       xsltTest, "documents", "./*.xsl", 0 },
     { "numbers tests",