diff --git a/src/error.c b/src/error.c
index 60b938a67ef64f8de5841ff634afe26b1016faf2..b027f8d6c813fb72c3760632e5d00fd62176b88d 100644
--- a/src/error.c
+++ b/src/error.c
@@ -16,7 +16,7 @@ char *automatic_fatal;
 JMP_BUF *recoveries=0;
 ONERROR *onerror_stack=0;
 
-jmp_buf *init_recovery(JMP_BUF *r)
+my_jmp_buf *init_recovery(JMP_BUF *r)
 {
   r->fp=fp;
   r->sp=sp;
diff --git a/src/error.h b/src/error.h
index 616925f0d72cc1c4a8311bed1363a8e0ab03c679..9dce4c7787bf91d8e8d04f0986d6b4aaeea7888f 100644
--- a/src/error.h
+++ b/src/error.h
@@ -23,10 +23,12 @@ typedef struct ONERROR
   void *arg;
 } ONERROR;
 
+typedef jmp_buf my_jmp_buf; /* Maybe I'll get less warnings like this */
+
 typedef struct JMP_BUF
 {
   struct JMP_BUF *previous;
-  jmp_buf recovery;
+  my_jmp_buf recovery;
   struct frame *fp;
   struct svalue *sp;
   struct svalue **mark_sp;
@@ -51,7 +53,7 @@ extern char *automatic_fatal;
 
 #define UNSET_ONERROR(X) onerror_stack=X.previous
 
-jmp_buf *init_recovery(JMP_BUF *r);
+my_jmp_buf *init_recovery(JMP_BUF *r);
 int fix_recovery(int i, JMP_BUF *r);
 void throw() ATTRIBUTE((noreturn));
 void va_error(char *fmt, va_list args) ATTRIBUTE((noreturn));