diff --git a/CMakeLists.txt b/CMakeLists.txt
index d224113..620f99c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,6 +17,7 @@ cmake_minimum_required( VERSION 2.8 )
 include( CheckCXXSourceCompiles )
 include( CheckFunctionExists )
 include( CheckSymbolExists )
+include( CheckPrototypeDefinition )
 include( CheckIncludeFile )
 include( CheckLibraryExists )
 include( FindPkgConfig )
@@ -114,6 +115,8 @@ check_function_exists( memcpy HAVE_MEMCPY )
 check_function_exists( bcopy HAVE_BCOPY )
 set( CMAKE_REQUIRED_LIBRARIES ${bak_CMAKE_REQUIRED_LIBRARIES} )
 unset( bak_CMAKE_REQUIRED_LIBRARIES )
+check_prototype_definition( ioctl "int ioctl(int d, int request, ...)" "-1" "unistd.h;sys/ioctl.h" HAVE_IOCTL_INT_INT_DOTS )
+check_prototype_definition( ioctl "int ioctl(int d, unsigned long request, ...)" "-1" "unistd.h;sys/ioctl.h" HAVE_IOCTL_INT_ULONG_DOTS )
 
 
 ##### check for audiofile #######################
diff --git a/artsc/artsdsp.c b/artsc/artsdsp.c
index 2b6b3ef..0139a74 100644
--- a/artsc/artsdsp.c
+++ b/artsc/artsdsp.c
@@ -79,8 +79,6 @@ static int frags;
 typedef int ioctl_request_t;
 #elif defined(HAVE_IOCTL_INT_ULONG_DOTS)
 typedef unsigned long ioctl_request_t;
-#elif defined(HAVE_IOCTL_INT_ULONGINT_DOTS)
-typedef unsigned long int ioctl_request_t;
 #else
 #error "unknown ioctl type (check config.h, adapt configure test)..."
 #endif
diff --git a/config.h.cmake b/config.h.cmake
index efd9b36..7c2f7c8 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -40,7 +40,8 @@
 
 #cmakedefine HAVE_SYS_SOUNDCARD_H 1
 #cmakedefine HAVE_LIBPTHREAD 1
-#define HAVE_IOCTL_INT_ULONGINT_DOTS 3
+#cmakedefine HAVE_IOCTL_INT_INT_DOTS 1
+#cmakedefine HAVE_IOCTL_INT_ULONG_DOTS 2
 
 #cmakedefine HAVE_LIBJACK 1
 #cmakedefine HAVE_LIBSNDIO 1
diff --git a/flow/gsl/gsl-fftgen.pl b/flow/gsl/gsl-fftgen.pl
index 1a2ef83..13199de 100755
--- a/flow/gsl/gsl-fftgen.pl
+++ b/flow/gsl/gsl-fftgen.pl
@@ -551,7 +551,7 @@ sub fft_loop_macros {
     # mul_result = gsl_complex (c1.re * c2.re - c1.im * c2.im, c1.re * c2.im + c1.im * c2.re);
     print "
 #define WMULTIPLY(Wre,Wim,Dre,Dim) { \\
-  register $tmp_ieee_type T1re, T1im, T2re, T2im; \\
+  $tmp_ieee_type T1re, T1im, T2re, T2im; \\
   T1re = Wre * Dre;  \\
   T1im = Wim * Dre;  \\
   T2re = Wim * Dim;  \\
@@ -567,7 +567,7 @@ sub butterfly_macros {
     # add_result = gsl_complex (c1.re + c2.re, c1.im + c2.im);
     print "
 #define BUTTERFLY_XY(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,Wre,Wim) { \\
-  register $tmp_ieee_type T1re, T1im, T2re, T2im; \\
+  $tmp_ieee_type T1re, T1im, T2re, T2im; \\
   T1re = X2re * Wre;  \\
   T1im = X2im * Wre;  \\
   T2re = X2im * Wim;  \\
@@ -582,7 +582,7 @@ sub butterfly_macros {
   Y2im = T2im;        \\
 }
 #define BUTTERFLY_Yx(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,Wre,Wim) { \\
-  register $tmp_ieee_type T1re, T1im, T2re, T2im; \\
+  $tmp_ieee_type T1re, T1im, T2re, T2im; \\
   T1re = X2re * Wim;  \\
   T1im = X2im * Wim;  \\
   T2re = X2im * Wre;  \\
@@ -597,7 +597,7 @@ sub butterfly_macros {
   Y2im = T2im;        \\
 }
 #define BUTTERFLY_yX(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,Wre,Wim) { \\
-  register $tmp_ieee_type T1re, T1im, T2re, T2im; \\
+  $tmp_ieee_type T1re, T1im, T2re, T2im; \\
   T1re = X2re * Wim;  \\
   T1im = X2im * Wim;  \\
   T2re = X2im * Wre;  \\
@@ -612,7 +612,7 @@ sub butterfly_macros {
   Y2im = T2im;        \\
 }
 #define BUTTERFLY_10(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,_1,_2) { \\
-  register $tmp_ieee_type T2re, T2im; \\
+  $tmp_ieee_type T2re, T2im; \\
   T2re = X1re - X2re; \\
   T2im = X1im - X2im; \\
   Y1re = X1re + X2re; \\
@@ -621,7 +621,7 @@ sub butterfly_macros {
   Y2im = T2im;        \\
 }
 #define BUTTERFLY_01(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,_1,_2) { \\
-  register $tmp_ieee_type T2re, T2im; \\
+  $tmp_ieee_type T2re, T2im; \\
   T2re = X1re + X2im; \\
   T2im = X1im - X2re; \\
   Y1re = X1re - X2im; \\
@@ -630,7 +630,7 @@ sub butterfly_macros {
   Y2im = T2im;        \\
 }
 #define BUTTERFLY_0m(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,_1,_2) { \\
-  register $tmp_ieee_type T2re, T2im; \\
+  $tmp_ieee_type T2re, T2im; \\
   T2re = X1re - X2im; \\
   T2im = X1im + X2re; \\
   Y1re = X1re + X2im; \\
@@ -639,7 +639,7 @@ sub butterfly_macros {
   Y2im = T2im;        \\
 }
 #define BUTTERFLY_XX(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,Wre,_2) { \\
-  register $tmp_ieee_type T1re, T1im, T2re, T2im; \\
+  $tmp_ieee_type T1re, T1im, T2re, T2im; \\
   T1re = X2re * Wre;  \\
   T1im = X2im * Wre;  \\
   T2re = T1im; \\
@@ -654,7 +654,7 @@ sub butterfly_macros {
   Y2im = T2im;        \\
 }
 #define BUTTERFLY_yY(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,Wre,_2) { \\
-  register $tmp_ieee_type T1re, T1im, T2re, T2im; \\
+  $tmp_ieee_type T1re, T1im, T2re, T2im; \\
   T1re = X2re * Wre;  \\
   T1im = X2im * Wre;  \\
   T2re = T1im;  \\
@@ -669,7 +669,7 @@ sub butterfly_macros {
   Y2im = T2im;        \\
 }
 #define BUTTERFLY_10scale(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,S) { \\
-  register $tmp_ieee_type T2re, T2im; \\
+  $tmp_ieee_type T2re, T2im; \\
   T2re = X1re - X2re; \\
   T2im = X1im - X2im; \\
   Y1re = X1re + X2re; \\
@@ -790,8 +790,8 @@ print " **/\n";
 	   $fft_size, $negate_sign ? "synthesis" : "analysis",
 	   $skip2 ? "_skip2" : "",
 	   $ieee_type, $ieee_type);
-    printf "%sregister unsigned int butterfly, block, offset;\n", $indent;
-    printf "%sregister %s Wre, Wim;\n\n", $indent, $tmp_ieee_type, $tmp_ieee_type;
+    printf "%sunsigned int butterfly, block, offset;\n", $indent;
+    printf "%s%s Wre, Wim;\n\n", $indent, $tmp_ieee_type, $tmp_ieee_type;
     printf "%sbutterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */\n", $indent;
     
     my $seen_rule = 0;
diff --git a/flow/gsl/gsldatacache.c b/flow/gsl/gsldatacache.c
index b00f6ef..ca3a188 100644
--- a/flow/gsl/gsldatacache.c
+++ b/flow/gsl/gsldatacache.c
@@ -264,8 +264,8 @@ data_cache_lookup_nextmost_node_L (GslDataCache *dcache,
       nodes -= 1;
       do
 	{
-	  register gint cmp;
-	  register guint i;
+	  gint cmp;
+	  guint i;
 	  
 	  i = (n_nodes + 1) >> 1;
 	  check = nodes + i;
diff --git a/flow/gsl/gslfft.c b/flow/gsl/gslfft.c
index 48f56ef..994b9ce 100644
--- a/flow/gsl/gslfft.c
+++ b/flow/gsl/gslfft.c
@@ -2,7 +2,7 @@
 #include <math.h>
 
 #define BUTTERFLY_XY(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,Wre,Wim) { \
-  register double T1re, T1im, T2re, T2im; \
+  double T1re, T1im, T2re, T2im; \
   T1re = X2re * Wre;  \
   T1im = X2im * Wre;  \
   T2re = X2im * Wim;  \
@@ -17,7 +17,7 @@
   Y2im = T2im;        \
 }
 #define BUTTERFLY_Yx(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,Wre,Wim) { \
-  register double T1re, T1im, T2re, T2im; \
+  double T1re, T1im, T2re, T2im; \
   T1re = X2re * Wim;  \
   T1im = X2im * Wim;  \
   T2re = X2im * Wre;  \
@@ -32,7 +32,7 @@
   Y2im = T2im;        \
 }
 #define BUTTERFLY_yX(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,Wre,Wim) { \
-  register double T1re, T1im, T2re, T2im; \
+  double T1re, T1im, T2re, T2im; \
   T1re = X2re * Wim;  \
   T1im = X2im * Wim;  \
   T2re = X2im * Wre;  \
@@ -47,7 +47,7 @@
   Y2im = T2im;        \
 }
 #define BUTTERFLY_10(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,_1,_2) { \
-  register double T2re, T2im; \
+  double T2re, T2im; \
   T2re = X1re - X2re; \
   T2im = X1im - X2im; \
   Y1re = X1re + X2re; \
@@ -56,7 +56,7 @@
   Y2im = T2im;        \
 }
 #define BUTTERFLY_01(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,_1,_2) { \
-  register double T2re, T2im; \
+  double T2re, T2im; \
   T2re = X1re + X2im; \
   T2im = X1im - X2re; \
   Y1re = X1re - X2im; \
@@ -65,7 +65,7 @@
   Y2im = T2im;        \
 }
 #define BUTTERFLY_0m(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,_1,_2) { \
-  register double T2re, T2im; \
+  double T2re, T2im; \
   T2re = X1re - X2im; \
   T2im = X1im + X2re; \
   Y1re = X1re + X2im; \
@@ -74,7 +74,7 @@
   Y2im = T2im;        \
 }
 #define BUTTERFLY_XX(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,Wre,_2) { \
-  register double T1re, T1im, T2re, T2im; \
+  double T1re, T1im, T2re, T2im; \
   T1re = X2re * Wre;  \
   T1im = X2im * Wre;  \
   T2re = T1im; \
@@ -89,7 +89,7 @@
   Y2im = T2im;        \
 }
 #define BUTTERFLY_yY(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,Wre,_2) { \
-  register double T1re, T1im, T2re, T2im; \
+  double T1re, T1im, T2re, T2im; \
   T1re = X2re * Wre;  \
   T1im = X2im * Wre;  \
   T2re = T1im;  \
@@ -104,7 +104,7 @@
   Y2im = T2im;        \
 }
 #define BUTTERFLY_10scale(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,S) { \
-  register double T2re, T2im; \
+  double T2re, T2im; \
   T2re = X1re - X2re; \
   T2im = X1im - X2im; \
   Y1re = X1re + X2re; \
@@ -116,7 +116,7 @@
 }
 
 #define WMULTIPLY(Wre,Wim,Dre,Dim) { \
-  register double T1re, T1im, T2re, T2im; \
+  double T1re, T1im, T2re, T2im; \
   T1re = Wre * Dre;  \
   T1im = Wim * Dre;  \
   T2re = Wim * Dim;  \
@@ -224,8 +224,8 @@ bitreverse_fft2synthesis (const unsigned int n,
 static void
 gsl_power2_fft2analysis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -246,8 +246,8 @@ gsl_power2_fft2analysis (const double *X, double *Y)
 static void
 gsl_power2_fft4analysis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -283,8 +283,8 @@ gsl_power2_fft4analysis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft4analysis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -313,8 +313,8 @@ gsl_power2_fft4analysis (const double *X, double *Y)
 static void
 gsl_power2_fft8analysis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -406,8 +406,8 @@ gsl_power2_fft8analysis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft8analysis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -448,8 +448,8 @@ gsl_power2_fft8analysis (const double *X, double *Y)
 static void
 gsl_power2_fft16analysis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -687,8 +687,8 @@ gsl_power2_fft16analysis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft16analysis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -751,8 +751,8 @@ gsl_power2_fft16analysis (const double *X, double *Y)
 static void
 gsl_power2_fft32analysis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -1352,8 +1352,8 @@ gsl_power2_fft32analysis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft32analysis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -1458,8 +1458,8 @@ gsl_power2_fft32analysis (const double *X, double *Y)
 static void
 gsl_power2_fft64analysis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -2051,8 +2051,8 @@ gsl_power2_fft64analysis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft64analysis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -2239,8 +2239,8 @@ gsl_power2_fft64analysis (const double *X, double *Y)
 static void
 gsl_power2_fft128analysis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -3412,8 +3412,8 @@ gsl_power2_fft128analysis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft128analysis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -3443,8 +3443,8 @@ gsl_power2_fft128analysis (const double *X, double *Y)
 static void
 gsl_power2_fft256analysis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -3573,8 +3573,8 @@ gsl_power2_fft256analysis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft256analysis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -3606,8 +3606,8 @@ gsl_power2_fft256analysis (const double *X, double *Y)
 static void
 gsl_power2_fft512analysis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -3901,8 +3901,8 @@ gsl_power2_fft512analysis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft512analysis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -3936,8 +3936,8 @@ gsl_power2_fft512analysis (const double *X, double *Y)
 static void
 gsl_power2_fft1024analysis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -4011,8 +4011,8 @@ gsl_power2_fft1024analysis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft1024analysis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -4048,8 +4048,8 @@ gsl_power2_fft1024analysis (const double *X, double *Y)
 static void
 gsl_power2_fft2048analysis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -4165,8 +4165,8 @@ gsl_power2_fft2048analysis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft2048analysis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -4204,8 +4204,8 @@ gsl_power2_fft2048analysis (const double *X, double *Y)
 static void
 gsl_power2_fft4096analysis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -4283,8 +4283,8 @@ gsl_power2_fft4096analysis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft4096analysis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -4324,8 +4324,8 @@ gsl_power2_fft4096analysis (const double *X, double *Y)
 static void
 gsl_power2_fft8192analysis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -4405,8 +4405,8 @@ gsl_power2_fft8192analysis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft8192analysis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -4448,8 +4448,8 @@ gsl_power2_fft8192analysis (const double *X, double *Y)
 static void
 gsl_power2_fft2synthesis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -4470,8 +4470,8 @@ gsl_power2_fft2synthesis (const double *X, double *Y)
 static void
 gsl_power2_fft4synthesis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -4507,8 +4507,8 @@ gsl_power2_fft4synthesis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft4synthesis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -4537,8 +4537,8 @@ gsl_power2_fft4synthesis (const double *X, double *Y)
 static void
 gsl_power2_fft8synthesis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -4630,8 +4630,8 @@ gsl_power2_fft8synthesis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft8synthesis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -4672,8 +4672,8 @@ gsl_power2_fft8synthesis (const double *X, double *Y)
 static void
 gsl_power2_fft16synthesis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -4911,8 +4911,8 @@ gsl_power2_fft16synthesis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft16synthesis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -4975,8 +4975,8 @@ gsl_power2_fft16synthesis (const double *X, double *Y)
 static void
 gsl_power2_fft32synthesis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -5576,8 +5576,8 @@ gsl_power2_fft32synthesis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft32synthesis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -5682,8 +5682,8 @@ gsl_power2_fft32synthesis (const double *X, double *Y)
 static void
 gsl_power2_fft64synthesis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -6275,8 +6275,8 @@ gsl_power2_fft64synthesis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft64synthesis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -6463,8 +6463,8 @@ gsl_power2_fft64synthesis (const double *X, double *Y)
 static void
 gsl_power2_fft128synthesis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -7636,8 +7636,8 @@ gsl_power2_fft128synthesis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft128synthesis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -7667,8 +7667,8 @@ gsl_power2_fft128synthesis (const double *X, double *Y)
 static void
 gsl_power2_fft256synthesis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -7797,8 +7797,8 @@ gsl_power2_fft256synthesis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft256synthesis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -7830,8 +7830,8 @@ gsl_power2_fft256synthesis (const double *X, double *Y)
 static void
 gsl_power2_fft512synthesis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -8125,8 +8125,8 @@ gsl_power2_fft512synthesis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft512synthesis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -8160,8 +8160,8 @@ gsl_power2_fft512synthesis (const double *X, double *Y)
 static void
 gsl_power2_fft1024synthesis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -8235,8 +8235,8 @@ gsl_power2_fft1024synthesis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft1024synthesis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -8272,8 +8272,8 @@ gsl_power2_fft1024synthesis (const double *X, double *Y)
 static void
 gsl_power2_fft2048synthesis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -8389,8 +8389,8 @@ gsl_power2_fft2048synthesis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft2048synthesis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -8428,8 +8428,8 @@ gsl_power2_fft2048synthesis (const double *X, double *Y)
 static void
 gsl_power2_fft4096synthesis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -8507,8 +8507,8 @@ gsl_power2_fft4096synthesis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft4096synthesis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -8548,8 +8548,8 @@ gsl_power2_fft4096synthesis (const double *X, double *Y)
 static void
 gsl_power2_fft8192synthesis_skip2 (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
@@ -8629,8 +8629,8 @@ gsl_power2_fft8192synthesis_skip2 (const double *X, double *Y)
 static void
 gsl_power2_fft8192synthesis (const double *X, double *Y)
 {
-  register unsigned int butterfly, block, offset;
-  register double Wre, Wim;
+  unsigned int butterfly, block, offset;
+  double Wre, Wim;
 
   butterfly = block = offset = 0, Wre = Wim = 0.0; /* silence compiler */
 
diff --git a/flow/gsl/gslffttest.c b/flow/gsl/gslffttest.c
index 9eb1fc5..96968b4 100644
--- a/flow/gsl/gslffttest.c
+++ b/flow/gsl/gslffttest.c
@@ -147,7 +147,7 @@ diff (guint        m,
 
 /* --- fft implementation --- */
 #define BUTTERFLY_XY(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,Wre,Wim) { \
-  register double T1re, T1im, T2re, T2im; \
+  double T1re, T1im, T2re, T2im; \
   T1re = X2re * Wre;  \
   T1im = X2im * Wre;  \
   T2re = X2im * Wim;  \
@@ -162,7 +162,7 @@ diff (guint        m,
   Y2im = T2im;        \
 }
 #define BUTTERFLY_10(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,_1,_2) { \
-  register double T2re, T2im; \
+  double T2re, T2im; \
   T2re = X1re - X2re; \
   T2im = X1im - X2im; \
   Y1re = X1re + X2re; \
@@ -171,7 +171,7 @@ diff (guint        m,
   Y2im = T2im;        \
 }
 #define BUTTERFLY_01(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,_1,_2) { \
-  register double T2re, T2im; \
+  double T2re, T2im; \
   T2re = X1re + X2im; \
   T2im = X1im - X2re; \
   Y1re = X1re - X2im; \
@@ -180,7 +180,7 @@ diff (guint        m,
   Y2im = T2im;        \
 }
 #define BUTTERFLY_0m(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,_1,_2) { \
-  register double T2re, T2im; \
+  double T2re, T2im; \
   T2re = X1re - X2im; \
   T2im = X1im + X2re; \
   Y1re = X1re + X2im; \
@@ -189,7 +189,7 @@ diff (guint        m,
   Y2im = T2im;        \
 }
 #define BUTTERFLY_10scale(X1re,X1im,X2re,X2im,Y1re,Y1im,Y2re,Y2im,S) { \
-  register double T2re, T2im; \
+  double T2re, T2im; \
   T2re = X1re - X2re; \
   T2im = X1im - X2im; \
   Y1re = X1re + X2re; \
@@ -200,7 +200,7 @@ diff (guint        m,
   Y1im *= S;          \
 }
 #define WMULTIPLY(Wre,Wim,Dre,Dim) { \
-  register double T1re, T1im, T2re, T2im; \
+  double T1re, T1im, T2re, T2im; \
   T1re = Wre * Dre;  \
   T1im = Wim * Dre;  \
   T2re = Wim * Dim;  \
diff --git a/flow/gsl/gslfilter.c b/flow/gsl/gslfilter.c
index 524355b..9cf9b69 100644
--- a/flow/gsl/gslfilter.c
+++ b/flow/gsl/gslfilter.c
@@ -993,7 +993,7 @@ static inline gdouble /* Y */
 filter_step_direct_canon_2 (GslIIRFilter *f,
 			    gdouble       X)
 {
-  register guint n = f->order;
+  guint n = f->order;
   gdouble *a = f->a, *b = f->b, *w = f->w;
   gdouble x, y, v;
 
@@ -1025,7 +1025,7 @@ static inline gdouble /* Y */
 filter_step_direct_canon_1 (GslIIRFilter *f,
 			    gdouble       X)
 {
-  register guint n = f->order;
+  guint n = f->order;
   gdouble *a = f->a, *b = f->b, *w = f->w;
   gdouble y, v;
 
diff --git a/flow/gsl/gslglib.c b/flow/gsl/gslglib.c
index 37c7187..a69a2fd 100644
--- a/flow/gsl/gslglib.c
+++ b/flow/gsl/gslglib.c
@@ -68,8 +68,8 @@ g_stpcpy (gchar       *dest,
   g_return_val_if_fail (src != NULL, NULL);
   return stpcpy (dest, src);
 #else
-  register gchar *d = dest;
-  register const gchar *s = src;
+  gchar *d = dest;
+  const gchar *s = src;
 
   g_return_val_if_fail (dest != NULL, NULL);
   g_return_val_if_fail (src != NULL, NULL);
@@ -2036,7 +2036,7 @@ printf_string_upper_bound (const gchar *format,
 
   while (*format)
     {
-      register gchar c = *format++;
+      gchar c = *format++;
 
       if (c != '%')
 	len += 1;
diff --git a/flow/gsl/gslglib.h b/flow/gsl/gslglib.h
index 1831985..3c3e89e 100644
--- a/flow/gsl/gslglib.h
+++ b/flow/gsl/gslglib.h
@@ -313,7 +313,7 @@ struct _GTrashStack
 static inline  guint
 g_bit_storage (gulong number)
 {
-  register guint n_bits = 0;
+  guint n_bits = 0;
 
   do
     {
diff --git a/flow/gsl/gslieee754.h b/flow/gsl/gslieee754.h
index 211b06c..158df6f 100644
--- a/flow/gsl/gslieee754.h
+++ b/flow/gsl/gslieee754.h
@@ -109,8 +109,8 @@ typedef	unsigned short int	GslFpuState;
 static inline void	gsl_fpu_setround	(GslFpuState		*cw);
 static inline int	gsl_fpu_okround		(void);
 static inline void	gsl_fpu_restore		(GslFpuState		 cv);
-static inline int	gsl_ftoi /* nearest */	(register float		 f)  G_GNUC_CONST;
-static inline int	gsl_dtoi /* nearest */	(register double	 f)  G_GNUC_CONST;
+static inline int	gsl_ftoi /* nearest */	(float		 f)  G_GNUC_CONST;
+static inline int	gsl_dtoi /* nearest */	(double	 f)  G_GNUC_CONST;
 /* fallbacks for the !386 case are below */
 #endif
 
@@ -204,7 +204,7 @@ gsl_fpu_restore (GslFpuState cv)
 	   : "m" (*&cv));
 }
 static inline int G_GNUC_CONST
-gsl_ftoi (register float f)
+gsl_ftoi (float f)
 {
   int r;
   
@@ -214,7 +214,7 @@ gsl_ftoi (register float f)
   return r;
 }
 static inline int G_GNUC_CONST
-gsl_dtoi (register double f)
+gsl_dtoi (double f)
 {
   int r;
   
@@ -228,12 +228,12 @@ gsl_dtoi (register double f)
 #  define gsl_fpu_okround()     (1)
 #  define gsl_fpu_restore(x)    /* nop */
 static inline int G_GNUC_CONST
-gsl_ftoi (register float v)
+gsl_ftoi (float v)
 {
   return v < -0.0 ? v - 0.5 : v + 0.5;
 }
 static inline int G_GNUC_CONST
-gsl_dtoi (register double v)
+gsl_dtoi (double v)
 {
   return v < -0.0 ? v - 0.5 : v + 0.5;
 }
diff --git a/flow/gsl/gsloputil.c b/flow/gsl/gsloputil.c
index 49e90b6..f4d619c 100644
--- a/flow/gsl/gsloputil.c
+++ b/flow/gsl/gsloputil.c
@@ -273,7 +273,7 @@ const_values_lookup_nextmost (ConstValuesArray *array,
       do
 	{
 	  guint i;
-	  register gfloat cmp;
+	  gfloat cmp;
 	  
 	  i = (n_nodes + 1) >> 1;
 	  check = nodes + i;
diff --git a/flow/gsl/gslosctable.c b/flow/gsl/gslosctable.c
index 018633d..0658ff3 100644
--- a/flow/gsl/gslosctable.c
+++ b/flow/gsl/gslosctable.c
@@ -616,7 +616,7 @@ gsl_osc_wave_normalize (guint   n_values,
   max = min;
   for (i = 1; i < n_values; i++)
     {
-      register gfloat v = values[i];
+      gfloat v = values[i];
 
       max = MAX (max, v);
       min = MIN (min, v);
diff --git a/flow/gsl/gslsignal.h b/flow/gsl/gslsignal.h
index b1ac4ca..591f71d 100644
--- a/flow/gsl/gslsignal.h
+++ b/flow/gsl/gslsignal.h
@@ -113,7 +113,7 @@ static inline double	gsl_approx_exp2	(float ex)	G_GNUC_CONST;
  * d2 = 1.0091272542790025586079663559158;
  * positive_atan1(x) = 1 + (n1 * x + n2) / ((1 + d1 * x) * x + d2);
  */
-static inline double	gsl_approx_atan1 	  (register double x)  G_GNUC_CONST;
+static inline double	gsl_approx_atan1 	  (double x)  G_GNUC_CONST;
 
 /**
  * gsl_approx_atan1_prescale
@@ -134,7 +134,7 @@ double			gsl_approx_atan1_prescale (double	   boost_amount);
  * wasn't minimized, but distributed to best fit the curverture of a
  * quarter circle. The maximum error is below 0.092.
  */
-static inline double	gsl_approx_qcircle1	  (register double x)  G_GNUC_CONST;
+static inline double	gsl_approx_qcircle1	  (double x)  G_GNUC_CONST;
 
 /**
  * gsl_approx_qcircle2
@@ -145,7 +145,7 @@ static inline double	gsl_approx_qcircle1	  (register double x)  G_GNUC_CONST;
  * wasn't minimized, but distributed to best fit the curverture of a
  * quarter circle. The maximum error is below 0.092.
  */
-static inline double	gsl_approx_qcircle2	  (register double x)  G_GNUC_CONST;
+static inline double	gsl_approx_qcircle2	  (double x)  G_GNUC_CONST;
 
 /**
  * gsl_approx_qcircle3
@@ -156,7 +156,7 @@ static inline double	gsl_approx_qcircle2	  (register double x)  G_GNUC_CONST;
  * wasn't minimized, but distributed to best fit the curverture of a
  * quarter circle. The maximum error is below 0.092.
  */
-static inline double	gsl_approx_qcircle3	  (register double x)  G_GNUC_CONST;
+static inline double	gsl_approx_qcircle3	  (double x)  G_GNUC_CONST;
 
 /**
  * gsl_approx_qcircle4
@@ -167,7 +167,7 @@ static inline double	gsl_approx_qcircle3	  (register double x)  G_GNUC_CONST;
  * wasn't minimized, but distributed to best fit the curverture of a
  * quarter circle. The maximum error is below 0.092.
  */
-static inline double	gsl_approx_qcircle4	  (register double x)  G_GNUC_CONST;
+static inline double	gsl_approx_qcircle4	  (double x)  G_GNUC_CONST;
 
 
 /* --- windows --- */
@@ -186,11 +186,11 @@ extern const gdouble *gsl_cent_table;
 
 /* --- implementation details --- */
 static inline double  G_GNUC_CONST
-gsl_approx_atan1 (register double x)
+gsl_approx_atan1 (double x)
 {
   if (x < 0)	/* make use of -atan(-x)==atan(x) */
     {
-      register double numerator, denominator = -1.0;
+      double numerator, denominator = -1.0;
 
       denominator += x * 0.81901156857081841441890603235599; /* d1 */
       numerator = x * 0.41156875521951602506487246309908; /* -n1 */
@@ -202,7 +202,7 @@ gsl_approx_atan1 (register double x)
     }
   else
     {
-      register double numerator, denominator = 1.0;
+      double numerator, denominator = 1.0;
 
       denominator += x * 0.81901156857081841441890603235599; /* d1 */
       numerator = x * -0.41156875521951602506487246309908; /* n1 */
@@ -215,7 +215,7 @@ gsl_approx_atan1 (register double x)
 }
 
 static inline double	G_GNUC_CONST
-gsl_approx_qcircle1 (register double x)
+gsl_approx_qcircle1 (double x)
 {
   double numerator = 1.20460124790369468987715633298929 * x - 1.20460124790369468987715633298929;
   double denominator = x - 1.20460124790369468987715633298929;
@@ -224,7 +224,7 @@ gsl_approx_qcircle1 (register double x)
 }
 
 static inline double	G_GNUC_CONST
-gsl_approx_qcircle2 (register double x)
+gsl_approx_qcircle2 (double x)
 {
   double numerator = 1.20460124790369468987715633298929*x;
   double denominator = x + 0.20460124790369468987715633298929;
@@ -233,7 +233,7 @@ gsl_approx_qcircle2 (register double x)
 }
 
 static inline double	G_GNUC_CONST
-gsl_approx_qcircle3 (register double x)
+gsl_approx_qcircle3 (double x)
 {
   double numerator = 0.20460124790369468987715633298929 - 0.20460124790369468987715633298929 * x;
   double denominator = x + 0.20460124790369468987715633298929;
@@ -242,7 +242,7 @@ gsl_approx_qcircle3 (register double x)
 }
 
 static inline double	G_GNUC_CONST
-gsl_approx_qcircle4 (register double x)
+gsl_approx_qcircle4 (double x)
 {
   double numerator = -0.20460124790369468987715633298929 * x;
   double denominator = x - 1.20460124790369468987715633298929;
@@ -253,8 +253,8 @@ gsl_approx_qcircle4 (register double x)
 static inline double G_GNUC_CONST
 gsl_approx_exp2 (float ex)
 {
-  register GslFloatIEEE754 fp = { 0, };
-  register double numer, denom, x;
+  GslFloatIEEE754 fp = { 0, };
+  double numer, denom, x;
   gint i;
 
   i = gsl_ftoi (ex);
diff --git a/mcop/debug.cc b/mcop/debug.cc
index be97528..d2d00f8 100644
--- a/mcop/debug.cc
+++ b/mcop/debug.cc
@@ -498,7 +498,7 @@ printf_string_upper_bound (const gchar *format,
 
   while (*format)
     {
-      register gchar c = *format++;
+      gchar c = *format++;
 
       if (c != '%')
         len += 1;
diff --git a/mcopidl/scanner.cc b/mcopidl/scanner.cc
index 6cf385d..78b26d6 100644
--- a/mcopidl/scanner.cc
+++ b/mcopidl/scanner.cc
@@ -852,9 +852,9 @@ YY_MALLOC_DECL
 
 YY_DECL
 	{
-	register yy_state_type yy_current_state;
-	register char *yy_cp, *yy_bp;
-	register int yy_act;
+	yy_state_type yy_current_state;
+	char *yy_cp, *yy_bp;
+	int yy_act;
 
 #line 100 "scanner.ll"
 
@@ -903,7 +903,7 @@ YY_DECL
 yy_match:
 		do
 			{
-			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
@@ -1344,9 +1344,9 @@ ECHO;
 
 static int yy_get_next_buffer()
 	{
-	register char *dest = yy_current_buffer->yy_ch_buf;
-	register char *source = yytext_ptr;
-	register int number_to_move, i;
+	char *dest = yy_current_buffer->yy_ch_buf;
+	char *source = yytext_ptr;
+	int number_to_move, i;
 	int ret_val;
 
 	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
@@ -1476,8 +1476,8 @@ static int yy_get_next_buffer()
 
 static yy_state_type yy_get_previous_state()
 	{
-	register yy_state_type yy_current_state;
-	register char *yy_cp;
+	yy_state_type yy_current_state;
+	char *yy_cp;
 
 	yy_current_state = yy_start;
 	yy_state_ptr = yy_state_buf;
@@ -1485,7 +1485,7 @@ static yy_state_type yy_get_previous_state()
 
 	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
 		{
-		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
@@ -1513,9 +1513,9 @@ static yy_state_type yy_try_NUL_trans( yy_current_state )
 yy_state_type yy_current_state;
 #endif
 	{
-	register int yy_is_jam;
+	int yy_is_jam;
 
-	register YY_CHAR yy_c = 1;
+	YY_CHAR yy_c = 1;
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
@@ -1533,14 +1533,14 @@ yy_state_type yy_current_state;
 
 #ifndef YY_NO_UNPUT
 #ifdef YY_USE_PROTOS
-static void yyunput( int c, register char *yy_bp )
+static void yyunput( int c, char *yy_bp )
 #else
 static void yyunput( c, yy_bp )
 int c;
-register char *yy_bp;
+char *yy_bp;
 #endif
 	{
-	register char *yy_cp = yy_c_buf_p;
+	char *yy_cp = yy_c_buf_p;
 
 	/* undo effects of setting up yytext */
 	*yy_cp = yy_hold_char;
@@ -1548,10 +1548,10 @@ register char *yy_bp;
 	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
 		{ /* need to shift things up to make room */
 		/* +2 for EOB chars. */
-		register int number_to_move = yy_n_chars + 2;
-		register char *dest = &yy_current_buffer->yy_ch_buf[
+		int number_to_move = yy_n_chars + 2;
+		char *dest = &yy_current_buffer->yy_ch_buf[
 					yy_current_buffer->yy_buf_size + 2];
-		register char *source =
+		char *source =
 				&yy_current_buffer->yy_ch_buf[number_to_move];
 
 		while ( source > yy_current_buffer->yy_ch_buf )
@@ -2012,7 +2012,7 @@ yyconst char *s2;
 int n;
 #endif
 	{
-	register int i;
+	int i;
 	for ( i = 0; i < n; ++i )
 		s1[i] = s2[i];
 	}
@@ -2026,7 +2026,7 @@ static int yy_flex_strlen( s )
 yyconst char *s;
 #endif
 	{
-	register int n;
+	int n;
 	for ( n = 0; s[n]; ++n )
 		;
 
diff --git a/mcopidl/yacc.cc b/mcopidl/yacc.cc
index e063506..054f71b 100644
--- a/mcopidl/yacc.cc
+++ b/mcopidl/yacc.cc
@@ -522,9 +522,9 @@ __yy_memcpy (to, from, count)
      char *from;
      unsigned int count;
 {
-  register char *f = from;
-  register char *t = to;
-  register int i = count;
+  char *f = from;
+  char *t = to;
+  int i = count;
 
   while (i-- > 0)
     *t++ = *f++;
@@ -537,9 +537,9 @@ __yy_memcpy (to, from, count)
 static void
 __yy_memcpy (char *to, char *from, unsigned int count)
 {
-  register char *t = to;
-  register char *f = from;
-  register int i = count;
+  char *t = to;
+  char *f = from;
+  int i = count;
 
   while (i-- > 0)
     *t++ = *f++;
@@ -582,10 +582,10 @@ int
 yyparse(YYPARSE_PARAM_ARG)
      YYPARSE_PARAM_DECL
 {
-  register int yystate;
-  register int yyn;
-  register short *yyssp;
-  register YYSTYPE *yyvsp;
+  int yystate;
+  int yyn;
+  short *yyssp;
+  YYSTYPE *yyvsp;
   int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
   int yychar1 = 0;		/*  lookahead token as an internal (translated) token number */
 
