diff --git a/util/romcc/romcc.c b/util/romcc/romcc.c
index c089df7..4b65357 100644
--- a/util/romcc/romcc.c
+++ b/util/romcc/romcc.c
@@ -3,8 +3,8 @@
 #undef RELEASE_DATE
 #undef VERSION
 #define VERSION_MAJOR "0"
-#define VERSION_MINOR "66"
-#define RELEASE_DATE "8 November 2004"
+#define VERSION_MINOR "67"
+#define RELEASE_DATE "9 November 2004"
 #define VERSION VERSION_MAJOR "." VERSION_MINOR
 
 #include <stdarg.h>
@@ -336,6 +336,7 @@
 	int report_line;
 	const char *report_name;
 	const char *report_dir;
+	int macro : 1;
 };
 struct hash_entry;
 struct token {
@@ -4696,6 +4697,7 @@
 	file->report_line = 1;
 	file->report_name = file->basename;
 	file->report_dir  = file->dirname;
+	file->macro       = 1;
 	file->prev = *filep;
 	*filep = file;
 	return 1;
@@ -4978,6 +4980,7 @@
 	file->report_line = 1;
 	file->report_name = file->basename;
 	file->report_dir  = file->dirname;
+	file->macro       = 0;
 
 	file->prev = state->file;
 	state->file = file;
@@ -5052,6 +5055,7 @@
 			file->report_line = override_line - 1;
 			file->report_name = name;
 			file->report_dir = dir;
+			file->macro      = 0;
 		}
 		break;
 	}
@@ -5085,6 +5089,7 @@
 			dir[dir_len] = '\0';
 			file->report_name = name;
 			file->report_dir = dir;
+			file->macro      = 0;
 		}
 		break;
 	}
@@ -24643,6 +24648,7 @@
 	filename = 0;
 	line = 0;
 	for(;;) {
+		struct file_state *file;
 		struct token *tk;
 		const char *token_str;
 		tok = peek(state);
@@ -24655,23 +24661,29 @@
 			tk->str_len ? tk->val.str :
 			tokens[tk->tok];
 		
-		if ((state->file->line != line) || 
-			(state->file->basename != filename)) {
+
+		file = state->file;
+		while(file->macro && file->prev) {
+			file = file->prev;
+		}
+		if (!file->macro && 
+			((file->line != line) || (file->basename != filename))) 
+		{
 			int i, col;
-			if ((state->file->basename == filename) &&
-				(line < state->file->line)) {
-				while(line < state->file->line) {
+			if ((file->basename == filename) &&
+				(line < file->line)) {
+				while(line < file->line) {
 					fprintf(fp, "\n");
 					line++;
 				}
 			}
 			else {
 				fprintf(fp, "\n#line %d \"%s\"\n",
-					state->file->line, state->file->basename);
+					file->line, file->basename);
 			}
-			line = state->file->line;
-			filename = state->file->basename;
-			col = get_col(state->file) - strlen(token_str);
+			line = file->line;
+			filename = file->basename;
+			col = get_col(file) - strlen(token_str);
 			for(i = 0; i < col; i++) {
 				fprintf(fp, " ");
 			}
