diff --git a/common.mk b/common.mk
index 573b64a..3b00750 100644
--- a/common.mk
+++ b/common.mk
@@ -636,7 +636,7 @@ inits.$(OBJEXT): {$(VPATH)}inits.c $(RUBY_H_INCLUDES) \
 io.$(OBJEXT): {$(VPATH)}io.c $(RUBY_H_INCLUDES) {$(VPATH)}io.h \
   {$(VPATH)}util.h $(ENCODING_H_INCLUDES) {$(VPATH)}dln.h {$(VPATH)}internal.h
 main.$(OBJEXT): {$(VPATH)}main.c $(RUBY_H_INCLUDES) {$(VPATH)}debug.h \
-  {$(VPATH)}node.h
+  {$(VPATH)}node.h $(REVISION_H)
 marshal.$(OBJEXT): {$(VPATH)}marshal.c $(RUBY_H_INCLUDES) {$(VPATH)}io.h \
   $(ENCODING_H_INCLUDES) {$(VPATH)}util.h {$(VPATH)}internal.h
 math.$(OBJEXT): {$(VPATH)}math.c $(RUBY_H_INCLUDES) \
diff --git a/main.c b/main.c
index e100cdd..9e1c14f 100644
--- a/main.c
+++ b/main.c
@@ -19,6 +19,11 @@
 #include <stdlib.h>
 #endif
 
+#include <string.h>
+
+#include "version.h"
+extern const char ruby_description[];
+
 RUBY_GLOBAL_SETUP
 
 int
@@ -35,6 +40,11 @@ main(int argc, char **argv)
     {
 	RUBY_INIT_STACK;
 	ruby_init();
+	if (strcmp(ruby_description, RUBY_DESCRIPTION) != 0) {
+		rb_warn("Description string of ruby command and libruby differ");
+		rb_warn("ruby command: %s", RUBY_DESCRIPTION);
+		rb_warn("libruby: %s", ruby_description);
+	}
 	return ruby_run_node(ruby_options(argc, argv));
     }
 }
