diff --git a/src/parser.c b/src/parser.c
index 5b0b23a0d05ea62c6248ba2d53903e8eb7db44e2..b18f659ab7189b9bf355240189492b7c25f3f647 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -570,7 +570,7 @@ static void parse_section_param(char *line, int *isFirstParam,
   static void save_param_##PREFIX(struct swift_params *params,    \
                                   const char *name, TYPE value) { \
     char str[PARSER_MAX_LINE_SIZE];                               \
-    sprintf(str, "%s: " FMT, name, value);                        \
+    sprintf(str, "%s:" FMT, name, value);                         \
     parser_set_param(params, str);                                \
     params->data[params->paramCount - 1].used = 1;                \
     params->data[params->paramCount - 1].is_default = 0;          \
diff --git a/tests/testParser.c b/tests/testParser.c
index c73699548637a3117551e02f7b83b160979b5b24..222f81f641c670a9fc93724048146cf9b43d7745 100644
--- a/tests/testParser.c
+++ b/tests/testParser.c
@@ -208,5 +208,14 @@ int main(int argc, char *argv[]) {
   assert(haveoptwords1 == 0);
   assert(haveoptwords2 == 1);
 
+  /* Issue 681, parser_get_opt_param_string returns same value. */
+  char run_name_1[80];
+  char run_name_2[80];
+  parser_get_opt_param_string(&param_file, "MetaData:run_name", run_name_1,
+                              "Untitled SWIFT simulation");
+  parser_get_opt_param_string(&param_file, "MetaData:run_name", run_name_2,
+                              "banana");
+  assert(strcmp(run_name_1, run_name_2) == 0);
+
   return 0;
 }