diff --git a/libs/fst/00_PATCH_i386_endian.patch b/libs/fst/00_PATCH_i386_endian.patch
new file mode 100644
index 000000000..3857f1fdf
--- /dev/null
+++ b/libs/fst/00_PATCH_i386_endian.patch
@@ -0,0 +1,14 @@
+--- fstapi.cc
++++ fstapi.cc
+@@ -4723,7 +4723,10 @@ if(gzread_pass_status)
+                                 hdr_incomplete = (xc->start_time == 0) && (xc->end_time == 0);
+ 
+                                 fstFread(&dcheck, 8, 1, xc->f);
+-                                xc->double_endian_match = (dcheck == FST_DOUBLE_ENDTEST);
++				/*
++				 * Yosys patch: Fix double endian check for i386 targets built in modern gcc
++				 */
++                                xc->double_endian_match = (dcheck == (double)FST_DOUBLE_ENDTEST);
+                                 if(!xc->double_endian_match)
+                                         {
+                                         union   {
diff --git a/libs/fst/00_UPDATE.sh b/libs/fst/00_UPDATE.sh
index 66a0fd8df..302e187f2 100755
--- a/libs/fst/00_UPDATE.sh
+++ b/libs/fst/00_UPDATE.sh
@@ -19,3 +19,4 @@ patch -p0 < 00_PATCH_win_zlib.patch
 patch -p0 < 00_PATCH_win_io.patch
 patch -p1 < 00_PATCH_strict_alignment.patch
 patch -p0 < 00_PATCH_wx_len_overread.patch
+patch -p0 < 00_PATCH_i386_endian.patch
diff --git a/libs/fst/fstapi.cc b/libs/fst/fstapi.cc
index ab3c54469..2463e6f15 100644
--- a/libs/fst/fstapi.cc
+++ b/libs/fst/fstapi.cc
@@ -4723,7 +4723,10 @@ if(gzread_pass_status)
                                 hdr_incomplete = (xc->start_time == 0) && (xc->end_time == 0);
 
                                 fstFread(&dcheck, 8, 1, xc->f);
-                                xc->double_endian_match = (dcheck == FST_DOUBLE_ENDTEST);
+				/*
+				 * Yosys patch: Fix double endian check for i386 targets built in modern gcc
+				 */
+                                xc->double_endian_match = (dcheck == (double)FST_DOUBLE_ENDTEST);
                                 if(!xc->double_endian_match)
                                         {
                                         union   {