diff -ur /home/kjetil/faust2/compiler/generator/fir_to_fir.cpp generator/fir_to_fir.cpp
--- /home/kjetil/faust2/compiler/generator/fir_to_fir.cpp	2016-06-16 18:00:48.000000000 +0200
+++ generator/fir_to_fir.cpp	2016-06-21 00:03:27.816423989 +0200
@@ -40,7 +40,7 @@
                 ArrayTyped* array_typed2 = dynamic_cast<ArrayTyped*>(inst2->fType);
                 if (array_typed2) {
                     return (array_typed1->fSize == array_typed2->fSize) 
-                            ? (long)array_typed1 > (long)array_typed1
+                            ? (intptr_t)array_typed1 > (intptr_t)array_typed1
                             : array_typed1->fSize > array_typed2->fSize;
                 } 
             }
diff -ur /home/kjetil/faust2/compiler/generator/Text.cpp generator/Text.cpp
--- /home/kjetil/faust2/compiler/generator/Text.cpp	2016-06-16 18:00:48.000000000 +0200
+++ generator/Text.cpp	2016-06-21 00:09:24.693684910 +0200
@@ -205,7 +205,11 @@
         do { snprintf(c, 32, "%.*g", p++, n); endp=0; } while (strtod(c, &endp) != n);
     } if (gGlobal->gFloatSize == 3) {
         long double q = n;
+#if defined(__MINGW32__)
+        do { __mingw_snprintf(c, 32, "%.*Lg", p++, q); endp=0; } while (strtold(c, &endp) != q);
+#else
         do { snprintf(c, 32, "%.*Lg", p++, q); endp=0; } while (strtold(c, &endp) != q);
+#endif
     }
     ensureFloat(c);
     return string(c)+inumix();
