diff --git a/epicardium/meson.build b/epicardium/meson.build
index ea28d3664563816c5fa8a4294e9fb3ba9308622c..1aa5556010941d2267f8b10aafcaf9ec7683c8a2 100644
--- a/epicardium/meson.build
+++ b/epicardium/meson.build
@@ -70,6 +70,14 @@ subdir('ble/')
 
 subdir('l0der/')
 
+epicardium_cargs = []
+if get_option('jailbreak_card10')
+  epicardium_cargs += [
+    '-DJAILBREAK_CARD10=1',
+  ]
+endif
+
+
 elf = executable(
   name + '.elf',
   'cdcacm.c',
@@ -88,6 +96,7 @@ elf = executable(
     '-Wl,-Map=' + meson.current_build_dir() + '/' + name + '.map',
     '-Wl,--defsym=_write=_write_epicardium',
   ],
+  c_args: epicardium_cargs,
 )
 
 epicardium_bin = custom_target(
diff --git a/epicardium/modules/lifecycle.c b/epicardium/modules/lifecycle.c
index c73084ca95406d783c33d588a92ecfd514e19a37..375cfef61dd9972fbb418f72659a1e30e69ef615 100644
--- a/epicardium/modules/lifecycle.c
+++ b/epicardium/modules/lifecycle.c
@@ -88,7 +88,9 @@ static int load_stat(char *name)
  */
 static int do_load(struct load_info *info)
 {
+#if defined(JAILBREAK_CARD10) && (JAILBREAK_CARD10 == 1)
 	struct l0dable_info l0dable;
+#endif
 	int res;
 
 	if (*info->name == '\0') {
diff --git a/meson_options.txt b/meson_options.txt
index 0bff7f441774f3f6eb695dd2f29fc308af3a0d44..a626628ffdca083d0b52fc5868b4180964595ed7 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -21,3 +21,11 @@ option(
 
   description: 'Whether to enable WSF TRACE prints',
 )
+
+option(
+  'jailbreak_card10',
+  type: 'boolean',
+  value: false,
+
+  description: 'Enable execution of .elf l0dables',
+)