diff --git a/src/cpp.c b/src/cpp.c
index 5e695826bba25cb5b31f0d4161de3c4e56c64f81..0abbf55d68a8957098d03f749b2cbb83b0af3727 100644
--- a/src/cpp.c
+++ b/src/cpp.c
@@ -2268,9 +2268,16 @@ static void insert_callback_define(struct cpp *this,
 			  this->handler, this->compat_handler, 2, 0 ) &&
       TYPEOF(sp[-1]) == T_STRING ) {
     string_builder_shared_strcat(tmp, sp[-1].u.string);
-    string_builder_sprintf(tmp, "\n#line %ld ", (long)this->current_line);
-    insert_current_file_as_string( this,def,args,tmp);
-    string_builder_putchar(tmp, '\n');
+    if( !this->prefix ){
+        int min;
+        check_string_range( sp[-1].u.string, 0, &min, 0 );
+        if( min < 32 )
+        {
+            string_builder_sprintf(tmp, "\n#line %ld ", (long)this->current_line);
+            insert_current_file_as_string( this,def,args,tmp);
+            string_builder_putchar(tmp, '\n');
+        }
+    }
     pop_stack();
   }
 }