--- /dev/null
+--- a/applets/applet_tables.c
++++ b/applets/applet_tables.c
+@@ -80,8 +80,15 @@ int main(int argc, char **argv)
+
+ printf("#define NUM_APPLETS %u\n", NUM_APPLETS);
+ if (NUM_APPLETS == 1) {
++ char *dash_to_underscore, *p;
+ printf("#define SINGLE_APPLET_STR \"%s\"\n", applets[0].name);
+- printf("#define SINGLE_APPLET_MAIN %s_main\n", applets[0].name);
++ /* Example: "ether-wake" -> "ether_wake" */
++ p = dash_to_underscore = strdup(applets[0].name);
++ p--;
++ while (*++p)
++ if (*p == '-')
++ *p = '_';
++ printf("#define SINGLE_APPLET_MAIN %s_main\n", dash_to_underscore);
+ }
+ printf("\n");
+