--- a/dmd/constfold.c	2009-12-08 04:54:12.000000000 +0000
+++ b/dmd/constfold.c	2009-12-08 04:54:57.000000000 +0000
@@ -497,7 +497,7 @@
 	    c = fmodl(e1->toReal(), r2) + fmodl(e1->toImaginary(), r2) * I;
 #elif defined(IN_GCC)
 	    c = complex_t(e1->toReal() % r2, e1->toImaginary() % r2);
-#elif (defined(__FreeBSD__) && __FreeBSD_version < 800000) || defined(__arm__) || defined(__thumb__)
+#elif (defined(__FreeBSD__) && __FreeBSD_version < 800000) || defined(__arm__) || defined(__thumb__) || defined(__sh__)
 	// freebsd is kinda messed up. the STABLE branch doesn't support C99's fmodl !?!
 	// arm also doesn't like fmodl
 	    c = complex_t(fmod(e1->toReal(), r2), fmod(e1->toImaginary(), r2));
@@ -512,7 +512,7 @@
 	    c = fmodl(e1->toReal(), i2) + fmodl(e1->toImaginary(), i2) * I;
 #elif defined(IN_GCC)
 	    c = complex_t(e1->toReal() % i2, e1->toImaginary() % i2);
-#elif (defined(__FreeBSD__) && __FreeBSD_version < 800000) || defined(__arm__) || defined(__thumb__)
+#elif (defined(__FreeBSD__) && __FreeBSD_version < 800000) || defined(__arm__) || defined(__thumb__) || defined(__sh__)
         // freebsd is kinda messed up. the STABLE branch doesn't support C99's fmodl !?!
 	// arm also doesn't like fmodl
 	    c = complex_t(fmod(e1->toReal(), i2), fmod(e1->toImaginary(), i2));
