diff --git a/generate_oly_score.py b/generate_oly_score.py
index b7361d98851e1d611c0e20694f95f06e36e54faf..33e0f931eecb987189f768b08b338ac002d741ee 100755
--- a/generate_oly_score.py
+++ b/generate_oly_score.py
@@ -553,9 +553,16 @@ def generate_webshop_files (settings, lily_files, tex_files):
       if i in noscore_instruments:
         continue;
       score_info = score_types.get (i, {});
-      score_type = score_info.get ("Name", "");
+      score_type = score_info.get ("Name", i);
       score_id = score_info.get ("Number", "XXX");
-      sid = int(score_id);
+      try:
+        # Replace '1a' to 1.01 (i.e. appended letters will indicate decimals, so they are sorted after 1)
+        def chartoindex(matchobj):
+          return "%s.%02d" % (matchobj.group(1), ord(matchobj.group(2).lower())-96);
+        sid = re.sub(r'^([0-9]+)([a-zA-Z])$', chartoindex, score_id);
+        sid = float(sid);
+      except ValueError as e:
+        sid = score_id;
       scores.append({"id": sid, "sku": score_settings.get ("scorenumber")+"-"+score_id, "type": score_type });
   
   webshop_settings["webshop_editions"] = sorted (scores, key=lambda k: k.get("id", 0));