diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index 014da016525676023f83b0e04b8d8bfd9d267d93..ed81f9fecf0fe558182b8c983507e5480c5f5ec4 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -10383,15 +10383,30 @@ yyreturn:
 
 int PrintListOfDouble(char *format, List_T *list, char *buffer)
 {
-  int j, k;
-  char tmp1[256], tmp2[256];
+  // if format does not contain formatting characters, simply append values to
+  // format using %g formatting; useful for quick debugging of lists
+  int numFormats = 0;
+  for(int i = 0; i < strlen(format); i++)
+    if(format[i] == '%') numFormats++;
+  if(!numFormats){
+    strcpy(buffer, format);
+    for(int i = 0; i < List_Nbr(list); i++){
+      double d;
+      List_Read(list, i, &d);
+      char tmp[256];
+      sprintf(tmp, " %g", d);
+      strcat(buffer, tmp);
+    }
+    return 0;
+  }
 
-  j = 0;
+  char tmp1[256], tmp2[256];
+  int j = 0, k = 0;
   buffer[j] = '\0';
 
   while(j < (int)strlen(format) && format[j] != '%') j++;
   strncpy(buffer, format, j);
-  buffer[j]='\0';
+  buffer[j] = '\0';
   for(int i = 0; i < List_Nbr(list); i++){
     k = j;
     j++;
@@ -10409,7 +10424,7 @@ int PrintListOfDouble(char *format, List_T *list, char *buffer)
       }
     }
     else
-      return List_Nbr(list)-i;
+      return List_Nbr(list) - i;
   }
   if(j != (int)strlen(format))
     return -1;
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index a08c87b7ec208ffdec00518f760b37944fee1b60..6cf6896d2d8c51efd6346da134040c058109d9d0 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -4502,15 +4502,30 @@ StringExpr :
 
 int PrintListOfDouble(char *format, List_T *list, char *buffer)
 {
-  int j, k;
-  char tmp1[256], tmp2[256];
+  // if format does not contain formatting characters, simply append values to
+  // format using %g formatting; useful for quick debugging of lists
+  int numFormats = 0;
+  for(int i = 0; i < strlen(format); i++)
+    if(format[i] == '%') numFormats++;
+  if(!numFormats){
+    strcpy(buffer, format);
+    for(int i = 0; i < List_Nbr(list); i++){
+      double d;
+      List_Read(list, i, &d);
+      char tmp[256];
+      sprintf(tmp, " %g", d);
+      strcat(buffer, tmp);
+    }
+    return 0;
+  }
 
-  j = 0;
+  char tmp1[256], tmp2[256];
+  int j = 0, k = 0;
   buffer[j] = '\0';
 
   while(j < (int)strlen(format) && format[j] != '%') j++;
   strncpy(buffer, format, j);
-  buffer[j]='\0';
+  buffer[j] = '\0';
   for(int i = 0; i < List_Nbr(list); i++){
     k = j;
     j++;
@@ -4528,7 +4543,7 @@ int PrintListOfDouble(char *format, List_T *list, char *buffer)
       }
     }
     else
-      return List_Nbr(list)-i;
+      return List_Nbr(list) - i;
   }
   if(j != (int)strlen(format))
     return -1;