diff --git a/.gitattributes b/.gitattributes
index 4c165f6b8e59d1b69e484d18c717582f1a032e28..efc5b8d461d33f397f93275b8d0f163cdcbaf484 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -14,8 +14,10 @@ testfont binary
 /src/docode.c foreign_ident
 /src/interpret.c foreign_ident
 /src/language.yacc foreign_ident
+/src/las.c foreign_ident
 /src/lex.c foreign_ident
 /src/main.c foreign_ident
+/src/mapping.c foreign_ident
 /src/modules/_Crypto/cbc.c foreign_ident
 /src/modules/_Crypto/crypto.c foreign_ident
 /src/modules/_Crypto/crypto.h foreign_ident
@@ -28,3 +30,16 @@ testfont binary
 /src/modules/_Crypto/md5.c foreign_ident
 /src/modules/_Crypto/md5.pike foreign_ident
 /src/modules/_Crypto/pipe.c foreign_ident
+/src/modules/call_out/call_out.c foreign_ident
+/src/modules/files/file.c foreign_ident
+/src/modules/gdbmmod/gdbmmod.c foreign_ident
+/src/modules/gmpmod/mpz_glue.c foreign_ident
+/src/modules/image/image.c foreign_ident
+/src/modules/pipe/pipe.c foreign_ident
+/src/modules/sprintf/sprintf.c foreign_ident
+/src/object.c foreign_ident
+/src/operators.c foreign_ident
+/src/pike_types.c foreign_ident
+/src/program.c foreign_ident
+/src/testsuite.in foreign_ident
+/src/threads.c foreign_ident
diff --git a/src/global.h b/src/global.h
index f03ec1a7fac7c46861461a6b39ed62631c3b257d..fe1b58951eb457802b92014f5608ddf7bdf7e418 100644
--- a/src/global.h
+++ b/src/global.h
@@ -73,7 +73,11 @@ char *alloca ();
 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
 #define RCSID(X) \
  static char *rcsid __attribute__ ((unused)) =X;
-#elif 
+#elif __GNUC__ == 2
+#define RCSID(X) \
+ static char *rcsid = X; \
+ static void *use_rcsid=(&use_rcsid, (void *)&rcsid)
+#else
 #define RCSID(X) \
  static char *rcsid = X;
 #endif
diff --git a/src/las.c b/src/las.c
index 1b96211770a08dcb8f71a465c3a456b801e36e39..c70ab1a0276669ecd703481189b4b8c58700f1c1 100644
--- a/src/las.c
+++ b/src/las.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id");
+RCSID("$Id: las.c,v 1.6 1996/11/14 01:36:28 hubbe Exp $");
 
 #include "language.h"
 #include "interpret.h"
diff --git a/src/mapping.c b/src/mapping.c
index 61f9474049e37734e8cc08b9f1a19c79651f665c..7b792a6a9f3a19f8728b292fb55d835c0d9b8d11 100644
--- a/src/mapping.c
+++ b/src/mapping.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id");
+RCSID("$Id: mapping.c,v 1.7 1996/11/14 01:36:29 hubbe Exp $");
 #include "main.h"
 #include "types.h"
 #include "object.h"
diff --git a/src/modules/call_out/call_out.c b/src/modules/call_out/call_out.c
index 3fc261dfa29344387dd6bf569034a799a7803603..f46dda09bcfa5356bdc3be85dd1dbb9300f43111 100644
--- a/src/modules/call_out/call_out.c
+++ b/src/modules/call_out/call_out.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id");
+RCSID("$Id: call_out.c,v 1.3 1996/11/14 01:36:33 hubbe Exp $");
 #include "array.h"
 #include "dynamic_buffer.h"
 #include "object.h"
diff --git a/src/modules/files/file.c b/src/modules/files/file.c
index 7323c408832c56ba63593ff4406ebd3b6185bab9..020b97ca43fc506a76cd1e0e8ae66564ba64953d 100644
--- a/src/modules/files/file.c
+++ b/src/modules/files/file.c
@@ -6,7 +6,7 @@
 #define READ_BUFFER 16384
 
 #include "global.h"
-RCSID("$Id");
+RCSID("$Id: file.c,v 1.11 1996/11/14 01:36:33 hubbe Exp $");
 #include "types.h"
 #include "interpret.h"
 #include "svalue.h"
diff --git a/src/modules/gdbmmod/gdbmmod.c b/src/modules/gdbmmod/gdbmmod.c
index 8d976ed6454cf50e354482739d9768a8a5e3238a..ba2d166f88a6c5bf5cd8ac1e490ff87b50c263e8 100644
--- a/src/modules/gdbmmod/gdbmmod.c
+++ b/src/modules/gdbmmod/gdbmmod.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id");
+RCSID("$Id: gdbmmod.c,v 1.4 1996/11/14 01:36:34 hubbe Exp $");
 #include "gdbm_machine.h"
 #include "types.h"
 #include "threads.h"
diff --git a/src/modules/gmpmod/mpz_glue.c b/src/modules/gmpmod/mpz_glue.c
index e122128372896d5b0f2ee29d2c126976ec24b055..6d7490acade93e844916afeefa2953b4d6f17c76 100644
--- a/src/modules/gmpmod/mpz_glue.c
+++ b/src/modules/gmpmod/mpz_glue.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id");
+RCSID("$Id: mpz_glue.c,v 1.7 1996/11/14 01:36:34 hubbe Exp $");
 #include "gmp_machine.h"
 #include "types.h"
 
diff --git a/src/modules/image/image.c b/src/modules/image/image.c
index eb93e8167e316418d9327cd760a346c0c127c58f..3535a90931cef1a84fe51622a2d6cb081fbe629a 100644
--- a/src/modules/image/image.c
+++ b/src/modules/image/image.c
@@ -5,7 +5,7 @@
 
 #include "stralloc.h"
 #include "global.h"
-RCSID("$Id");
+RCSID("$Id: image.c,v 1.24 1996/11/14 01:36:35 hubbe Exp $");
 #include "types.h"
 #include "macros.h"
 #include "object.h"
diff --git a/src/modules/pipe/pipe.c b/src/modules/pipe/pipe.c
index de8f3ec0616959ac38256ab1624cfa367c0c1c6b..e6ceed60bfe3fab1204ff66c5749da08358cd258 100644
--- a/src/modules/pipe/pipe.c
+++ b/src/modules/pipe/pipe.c
@@ -20,7 +20,7 @@
 #include <fcntl.h>
 
 #include "global.h"
-RCSID("$Id");
+RCSID("$Id: pipe.c,v 1.6 1996/11/14 01:36:35 hubbe Exp $");
 
 #include "stralloc.h"
 #include "types.h"
diff --git a/src/modules/sprintf/sprintf.c b/src/modules/sprintf/sprintf.c
index 3d448dec7520300f850c714d05f9c1c90b9f3f7a..fa2ec761f716646665c4b19ec0e6850a55b99a3f 100644
--- a/src/modules/sprintf/sprintf.c
+++ b/src/modules/sprintf/sprintf.c
@@ -96,7 +96,7 @@
 */
 
 #include "global.h"
-RCSID("$Id");
+RCSID("$Id: sprintf.c,v 1.6 1996/11/14 01:36:36 hubbe Exp $");
 #include "error.h"
 #include "array.h"
 #include "svalue.h"
diff --git a/src/object.c b/src/object.c
index 001b2fb4c67d944b99ee13317feb3adcfcc61538..e0ca94a113800c7535d99276ccf8654a5b64477a 100644
--- a/src/object.c
+++ b/src/object.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id");
+RCSID("$Id: object.c,v 1.5 1996/11/14 01:36:29 hubbe Exp $");
 #include "object.h"
 #include "dynamic_buffer.h"
 #include "interpret.h"
diff --git a/src/operators.c b/src/operators.c
index 1350fc87452aa6ad88ca80cb8f5e2d7862a70795..db57f9012b3c9389355cfa937ec9977f710737d0 100644
--- a/src/operators.c
+++ b/src/operators.c
@@ -5,7 +5,7 @@
 \*/
 #include <math.h>
 #include "global.h"
-RCSID("$Id");
+RCSID("$Id: operators.c,v 1.3 1996/11/14 01:36:30 hubbe Exp $");
 #include "interpret.h"
 #include "svalue.h"
 #include "multiset.h"
diff --git a/src/pike_types.c b/src/pike_types.c
index 7bea8e488c741a0d74e40ff8c232aa94c6b291ec..894f56151d6464884005d76c2970de003cfa1646 100644
--- a/src/pike_types.c
+++ b/src/pike_types.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id");
+RCSID("$Id: pike_types.c,v 1.8 1996/11/14 01:36:30 hubbe Exp $");
 #include <ctype.h>
 #include "svalue.h"
 #include "pike_types.h"
diff --git a/src/program.c b/src/program.c
index db4cc1bc04d40410d64f1bf0b09ea687183f6f75..25bcbc3088f3535dafd641f6e00ba52cb4d48e44 100644
--- a/src/program.c
+++ b/src/program.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id");
+RCSID("$Id: program.c,v 1.6 1996/11/14 01:36:31 hubbe Exp $");
 #include "program.h"
 #include "object.h"
 #include "dynamic_buffer.h"
diff --git a/src/testsuite.in b/src/testsuite.in
index fed1d46f8ba8230857b50a5dbaaaf811bc15ff57..91132e4364357c72a04a17c8220a5bccd0b4ef32 100644
--- a/src/testsuite.in
+++ b/src/testsuite.in
@@ -1,4 +1,4 @@
-test_true("$Id")
+test_true("$Id: testsuite.in,v 1.8 1996/11/14 01:36:32 hubbe Exp $")
 test_any([[object(File) o=File(); return objectp(o);]],1)
 test_any([[object o=Regexp("foo"); return objectp(o);]],1)
 test_any([[object o=Regexp("foo"); return object_program(o);]],Regexp)
diff --git a/src/threads.c b/src/threads.c
index 457d689a97e3b8be4b66a10272b7bc91ade67f56..30a166c91160868181c51180fa0c9caa1f18478a 100644
--- a/src/threads.c
+++ b/src/threads.c
@@ -1,5 +1,5 @@
 #include "global.h"
-RCSID("$Id");
+RCSID("$Id: threads.c,v 1.10 1996/11/14 01:36:32 hubbe Exp $");
 
 int num_threads = 1;
 int threads_disabled = 0;