--- dumb/include/dumb.h
+++ dumb/include/dumb.h
@@ -400,7 +400,7 @@ DUH *DUMBEXPORT dumb_load_it(const char
 DUH *DUMBEXPORT dumb_load_xm(const char *filename);
 DUH *DUMBEXPORT dumb_load_s3m(const char *filename);
 DUH *DUMBEXPORT dumb_load_stm(const char *filename);
-DUH *DUMBEXPORT dumb_load_mod(const char *filename, int restrict);
+DUH *DUMBEXPORT dumb_load_mod(const char *filename, int rstrict);
 DUH *DUMBEXPORT dumb_load_ptm(const char *filename);
 DUH *DUMBEXPORT dumb_load_669(const char *filename);
 DUH *DUMBEXPORT dumb_load_psm(const char *filename, int subsong);
@@ -413,7 +413,7 @@ DUH *DUMBEXPORT dumb_read_it(DUMBFILE *f
 DUH *DUMBEXPORT dumb_read_xm(DUMBFILE *f);
 DUH *DUMBEXPORT dumb_read_s3m(DUMBFILE *f);
 DUH *DUMBEXPORT dumb_read_stm(DUMBFILE *f);
-DUH *DUMBEXPORT dumb_read_mod(DUMBFILE *f, int restrict);
+DUH *DUMBEXPORT dumb_read_mod(DUMBFILE *f, int rstrict);
 DUH *DUMBEXPORT dumb_read_ptm(DUMBFILE *f);
 DUH *DUMBEXPORT dumb_read_669(DUMBFILE *f);
 DUH *DUMBEXPORT dumb_read_psm(DUMBFILE *f, int subsong);
@@ -426,7 +426,7 @@ DUH *DUMBEXPORT dumb_load_it_quick(const
 DUH *DUMBEXPORT dumb_load_xm_quick(const char *filename);
 DUH *DUMBEXPORT dumb_load_s3m_quick(const char *filename);
 DUH *DUMBEXPORT dumb_load_stm_quick(const char *filename);
-DUH *DUMBEXPORT dumb_load_mod_quick(const char *filename, int restrict);
+DUH *DUMBEXPORT dumb_load_mod_quick(const char *filename, int rstrict);
 DUH *DUMBEXPORT dumb_load_ptm_quick(const char *filename);
 DUH *DUMBEXPORT dumb_load_669_quick(const char *filename);
 DUH *DUMBEXPORT dumb_load_psm_quick(const char *filename, int subsong);
@@ -439,7 +439,7 @@ DUH *DUMBEXPORT dumb_read_it_quick(DUMBF
 DUH *DUMBEXPORT dumb_read_xm_quick(DUMBFILE *f);
 DUH *DUMBEXPORT dumb_read_s3m_quick(DUMBFILE *f);
 DUH *DUMBEXPORT dumb_read_stm_quick(DUMBFILE *f);
-DUH *DUMBEXPORT dumb_read_mod_quick(DUMBFILE *f, int restrict);
+DUH *DUMBEXPORT dumb_read_mod_quick(DUMBFILE *f, int rstrict);
 DUH *DUMBEXPORT dumb_read_ptm_quick(DUMBFILE *f);
 DUH *DUMBEXPORT dumb_read_669_quick(DUMBFILE *f);
 DUH *DUMBEXPORT dumb_read_psm_quick(DUMBFILE *f, int subsong);
--- dumb/src/it/loadmod.c
+++ dumb/src/it/loadmod.c
@@ -26,7 +26,7 @@
  * pointer to the DUH struct. When you have finished with it, you must
  * pass the pointer to unload_duh() so that the memory can be freed.
  */
-DUH *DUMBEXPORT dumb_load_mod_quick(const char *filename, int restrict)
+DUH *DUMBEXPORT dumb_load_mod_quick(const char *filename, int rstrict)
 {
 	DUH *duh;
 	DUMBFILE *f = dumbfile_open(filename);
@@ -34,7 +34,7 @@ DUH *DUMBEXPORT dumb_load_mod_quick(cons
 	if (!f)
 		return NULL;
 
-	duh = dumb_read_mod_quick(f, restrict);
+	duh = dumb_read_mod_quick(f, rstrict);
 
 	dumbfile_close(f);
 
--- dumb/src/it/loadmod2.c
+++ dumb/src/it/loadmod2.c
@@ -21,9 +21,9 @@
 
 
 
-DUH *DUMBEXPORT dumb_load_mod(const char *filename, int restrict)
+DUH *DUMBEXPORT dumb_load_mod(const char *filename, int rstrict)
 {
-	DUH *duh = dumb_load_mod_quick(filename, restrict);
+	DUH *duh = dumb_load_mod_quick(filename, rstrict);
 	dumb_it_do_initial_runthrough(duh);
 	return duh;
 }
--- dumb/src/it/readmod.c
+++ dumb/src/it/readmod.c
@@ -441,7 +441,7 @@ static DUMBFILE *dumbfile_buffer_mod_2(D
 }
 
 
-static DUMB_IT_SIGDATA *it_mod_load_sigdata(DUMBFILE *f, int restrict)
+static DUMB_IT_SIGDATA *it_mod_load_sigdata(DUMBFILE *f, int rstrict)
 {
 	DUMB_IT_SIGDATA *sigdata;
 	int n_channels;
@@ -550,7 +550,7 @@ static DUMB_IT_SIGDATA *it_mod_load_sigd
 	}
 
 	// moo
-	if ( restrict && sigdata->n_samples == 15 )
+	if ( rstrict && sigdata->n_samples == 15 )
 	{
 		free(sigdata);
 		dumbfile_close(f);
@@ -758,13 +758,13 @@ static DUMB_IT_SIGDATA *it_mod_load_sigd
 
 
 
-DUH *DUMBEXPORT dumb_read_mod_quick(DUMBFILE *f, int restrict)
+DUH *DUMBEXPORT dumb_read_mod_quick(DUMBFILE *f, int rstrict)
 {
 	sigdata_t *sigdata;
 
 	DUH_SIGTYPE_DESC *descptr = &_dumb_sigtype_it;
 
-	sigdata = it_mod_load_sigdata(f, restrict);
+	sigdata = it_mod_load_sigdata(f, rstrict);
 
 	if (!sigdata)
 		return NULL;
--- dumb/src/it/readmod2.c
+++ dumb/src/it/readmod2.c
@@ -21,9 +21,9 @@
 
 
 
-DUH *DUMBEXPORT dumb_read_mod(DUMBFILE *f, int restrict)
+DUH *DUMBEXPORT dumb_read_mod(DUMBFILE *f, int rstrict)
 {
-	DUH *duh = dumb_read_mod_quick(f, restrict);
+	DUH *duh = dumb_read_mod_quick(f, rstrict);
 	dumb_it_do_initial_runthrough(duh);
 	return duh;
 }
--- src/timidity/timidity.h
+++ src/timidity/timidity.h
@@ -117,12 +117,13 @@ typedef float final_volume_t;
   #define PI 3.14159265358979323846
 #endif
 
-#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
+#if defined(__GNUC__) && !defined(__clang__) && (defined(__i386__) || defined(__x86_64__))
 // [RH] MinGW's pow() function is terribly slow compared to VC8's
 // (I suppose because it's using an old version from MSVCRT.DLL).
 // On an Opteron running x86-64 Linux, this also ended up being about
 // 100 cycles faster than libm's pow(), which is why I'm using this
 // for GCC in general and not just for MinGW.
+// [CE] Clang doesn't yet support some inline ASM operations so I disabled it for that instance
 
 extern __inline__ double pow_x87_inline(double x,double y)
 {
