Dear Andreas Rönnquist, dear Maintainer(s), when trying to display a very large jpg image, geeqie crashes. Take for example https://upload.wikimedia.org/wikipedia/commons/6/6d/The_Garden_of_Earthly_Delights_by_Bosch_High_Resolution.jpg a jpg file with resolution 39137x22279 and of size 175 MB. I would at least expect some kind of warning or error message like issued, e.g., by the display command. Any idea? Regards, Jörg.
Thanks for your report, first, make sure you are running the latest one in unstable, which is 1:2.6.1-2. I doubt that does much different, but I cannot reproduce the crash, neither on unstable, or a backported geeqie 1:2.6.1-2 to stable. It does take quite some time with such a big image, but it loads fine for me. So, a backtrace would be appreciated to be able to find out what is happening. /Andreas Rönnquist gusnan@debian.org mailinglists@debian.org
By the way, are you on wayland or X? It would help if you provided the package dependencies that the standard reportbug output gives. /Andreas gusnan@debian.org mailinglists@debian.org
Thank you for taking care. Andreas Rönnquist wrote on 01/12/2025 16:50: I'm using X (modesetting): I now tested it first on my notebook (AMD Ryzen 6800HS with 16 GB RAM) with debian kernel 6.17.9+deb14-amd64 and X in version ii xserver-common 2:21.1.21-1 ii xserver-xorg-core 2:21.1.21-1 Indeed, on this system geeqie seems to work with the very large image, opens in a smaller window and displays the image. But when I tried to change the image size to full screen, a crash happens with the following output: Geeqie fatal error Signal: Invalid memory reference Code: Address not mapped Address: 0x00007fd889144051 geeqie(+0xb27e6) [0x5593c0c8b7e6] /lib/x86_64-linux-gnu/libc.so.6(+0x3fdf0) [0x7fd9ebac3df0] /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0(+0x162c2) [0x7fd9ed4992c2] /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0(+0x17e52) [0x7fd9ed49ae52] /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0(+0x18e36) [0x7fd9ed49be36] /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0(gdk_pixbuf_scale+0x23f) [0x7fd9ed4963ff] geeqie(+0xe72a1) [0x5593c0cc02a1] geeqie(+0xe86df) [0x5593c0cc16df] /lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x5c6ae) [0x7fd9ed1246ae] /lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x5fa4f) [0x7fd9ed127a4f] /lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x30) [0x7fd9ed1281d0] /lib/x86_64-linux-gnu/libgio-2.0.so.0(g_application_run+0x1ed) [0x7fd9ed3770bd] geeqie(+0x3b3eb) [0x5593c0c143eb] /lib/x86_64-linux-gnu/libc.so.6(+0x29ca8) [0x7fd9ebaadca8] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x85) [0x7fd9ebaadd65] geeqie(+0x3bc31) [0x5593c0c14c31] Then, I tested my desktop with a self compiled kernel with version 6.17.9 on a system with AMD Ryzen 5700G and 64 GB RAM. The X version is ii xserver-common 2:21.1.20-1 ii xserver-xorg-core 2:21.1.20-1 After upgrading to the latest version 1:2.6.1-2 of geeqie, it still crashes here. Downloading the image and commanding geeqie The_Garden_of_Earthly_Delights_by_Bosch_High_Resolution.jpg crashes with Geeqie fatal error Signal: Invalid memory reference Code: Address not mapped Address: 0x00007f5445143ee0 geeqie(+0xd17e7) [0x55e89d79e7e7] /lib/x86_64-linux-gnu/libc.so.6(+0x3fdf0) [0x7f55ac4c3df0] /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0(+0x162c2) [0x7f55adefc2c2] /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0(+0x17e52) [0x7f55adefde52] /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0(+0x18e36) [0x7f55adefee36] /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0(gdk_pixbuf_scale+0x23f) [0x7f55adef93ff] geeqie(+0x1065ac) [0x55e89d7d35ac] geeqie(+0x107a33) [0x55e89d7d4a33] /lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x5c6ae) [0x7f55adb876ae] /lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x5fa4f) [0x7f55adb8aa4f] /lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x30) [0x7f55adb8b1d0] /lib/x86_64-linux-gnu/libgio-2.0.so.0(g_application_run+0x1ed) [0x7f55addda0bd] geeqie(main+0x204) [0x55e89d7269b4] /lib/x86_64-linux-gnu/libc.so.6(+0x29ca8) [0x7f55ac4adca8] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x85) [0x7f55ac4add65] geeqie(_start+0x21) [0x55e89d7272e1] The referenced libraries are up to date on my system: ii libc6:amd64 2.41-12 ii libgdk-pixbuf-2.0-0:amd64 2.44.4+dfsg-1 ii libglib2.0-0t64:amd64 2.86.2-1 Here it comes: Regards, Jörg.
-------------------------------- 8< -------------------------------- -------------------------------- 8< -------------------------------- Thanks. Unfortunately that doesn't give me much. Could you please install the debug package of geeqie and get a backtrace through gdb? I can give you more detailed instructions on how to do this, if you need them. /Andreas gusnan@debian.org
Andreas Rönnquist wrote on 01/12/2025 21:47:
<snip>> Thanks. Unfortunately that doesn't give me much. Could you please>
install the debug package of geeqie and get a backtrace through gdb?
> I can give you more detailed instructions on how to do this, if you
> need them.
>
> /Andreas
> gusnan@debian.org
I installed the package geeqie-dbgsym and got a backtrace through gdb:
$ gdb geeqie
...
(gdb) run
...
Thread 1 "geeqie" received signal SIGSEGV, Segmentation fault.
0x00007ffff7f7b2c2 in ?? () from /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
(gdb) bt
#0 0x00007ffff7f7b2c2 in ?? ()
from /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
#1 0x00007ffff7f7ce52 in ?? ()
from /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
#2 0x00007ffff7f7de36 in ?? ()
from /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
#3 0x00007ffff7f783ff in gdk_pixbuf_scale ()
from /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
#4 0x000055555565a5ac in (anonymous namespace)::rt_tile_render (
rt=0x5555559a2c70, it=0x555556224530, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, new_data=1,
fast=<optimized out>) at ../src/renderer-tiles.cc:1423
#5 0x000055555565ba33 in (anonymous namespace)::rt_tile_expose (
rt=0x5555559a2c70, it=0x555556224530, x=0, y=0, w=128, h=128,
new_data=<optimized out>, fast=1) at ../src/renderer-tiles.cc:1492
#6 (anonymous namespace)::rt_queue_draw_idle_cb (data=0x5555559a2c70)
at ../src/renderer-tiles.cc:1625
#7 0x00007ffff71c86ae in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8 0x00007ffff71cba4f in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9 0x00007ffff71cc1d0 in g_main_context_iteration ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007ffff741b0bd in g_application_run ()
from /lib/x86_64-linux-gnu/libgio-2.0.so.0
#11 0x00005555555ad9b4 in main (argc=1, argv=0x7fffffffde68)
at ../src/main.cc:1142
Regards,
Jörg.
Thanks - It would be very nice to get the symbols for those libgdk_pixbuf-2.0 calls to - could you please install the debug symbols in libgdk-pixbuf-2.0-0-dbgsym too and do the backtrace again? (That should be the package if I'm not mistaken). /Andreas gusnan@debian.org
Andreas Rönnquist wrote on 02/12/2025 18:15:
<snip>
Yes of course, here is the slightly longer backtrace:
Thread 1 "geeqie" received signal SIGSEGV, Segmentation fault.
scale_line (weights=0x55555628e140, n_x=20, n_y=20, dest=0x555556280d10 "",
dest_x=<optimized out>, dest_end=0x555556280e90 "", dest_channels=3,
dest_has_alpha=0, src=0x555556190320, src_channels=3, src_has_alpha=0,
x_init=-2108350976, x_step=1220210, src_width=39137, check_size=0,
color1=0, color2=0) at ../gdk-pixbuf/pixops/pixops.c:1071
warning: 1071 ../gdk-pixbuf/pixops/pixops.c: No such file or directory
(gdb) bt
#0 scale_line (weights=0x55555628e140, n_x=20, n_y=20,
dest=0x555556280d10 "", dest_x=<optimized out>,
dest_end=0x555556280e90 "", dest_channels=3, dest_has_alpha=0,
src=0x555556190320, src_channels=3, src_has_alpha=0, x_init=-2108350976,
x_step=1220210, src_width=39137, check_size=0, color1=0, color2=0)
at ../gdk-pixbuf/pixops/pixops.c:1071
#1 0x00007ffff7f7ce52 in pixops_process (dest_buf=<optimized out>,
render_x0=1792, render_y0=0, render_x1=<optimized out>, render_y1=128,
dest_rowstride=<optimized out>, dest_channels=3, dest_has_alpha=0,
src_buf=0x7ffe8d277010 "", src_width=39137, src_height=22279,
src_rowstride=117412, src_channels=3, src_has_alpha=0,
scale_x=<optimized out>, scale_y=<optimized out>, check_x=0, check_y=0,
check_size=0, color1=0, color2=0, filter=0x7fffffffd890,
line_func=0x7ffff7f7b130 <scale_line>,
pixel_func=0x7ffff7f7c530 <scale_pixel>)
at ../gdk-pixbuf/pixops/pixops.c:1397
#2 0x00007ffff7f7de36 in _pixops_scale_real (dest_buf=0x555556280d10 "",
render_x0=1792, render_y0=0, render_x1=1920, render_y1=128,
dest_rowstride=384, dest_channels=3, dest_has_alpha=0,
src_buf=<optimized out>, src_width=<optimized out>,
src_height=<optimized out>, src_rowstride=<optimized out>, src_channels=3,
src_has_alpha=0, scale_x=<optimized out>,
scale_x@entry=0.053708766640263687, scale_y=<optimized out>,
scale_y@entry=0.05372772566093631, interp_type=PIXOPS_INTERP_TILES)
at ../gdk-pixbuf/pixops/pixops.c:2425
#3 0x00007ffff7f80a24 in _pixops_scale (
dest_buf=dest_buf@entry=0x555556280d10 "", dest_width=<optimized out>,
dest_height=<optimized out>, dest_rowstride=<optimized out>,
dest_channels=<optimized out>, dest_has_alpha=<optimized out>,
src_buf=<optimized out>, src_width=<optimized out>,
src_height=<optimized out>, src_rowstride=<optimized out>,
src_channels=<optimized out>, src_has_alpha=<optimized out>,
dest_x=<optimized out>, dest_y=<optimized out>,
dest_region_width=<optimized out>, dest_region_height=128,
offset_x=offset_x@entry=-1792, offset_y=offset_y@entry=0,
scale_x=scale_x@entry=0.053708766640263687,
scale_y=scale_y@entry=0.05372772566093631, interp_type=PIXOPS_INTERP_TILES)
at ../gdk-pixbuf/pixops/pixops.c:2482
#4 0x00007ffff7f783ff in gdk_pixbuf_scale (src=0x7fff3c0eb540,
dest=0x555556234fc0, dest_x=0, dest_y=0, dest_width=128, dest_height=128,
offset_x=<optimized out>, offset_y=0, scale_x=0.053708766640263687,
scale_y=0.05372772566093631, interp_type=GDK_INTERP_TILES)
at ../gdk-pixbuf/gdk-pixbuf-scale.c:84
#5 0x000055555565a5ac in (anonymous namespace)::rt_tile_render (
rt=0x5555559a1570, it=0x55555622c3f0, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, new_data=1,
fast=<optimized out>) at ../src/renderer-tiles.cc:1423
#6 0x000055555565ba33 in (anonymous namespace)::rt_tile_expose (
rt=0x5555559a1570, it=0x55555622c3f0, x=0, y=0, w=128, h=128,
new_data=<optimized out>, fast=1) at ../src/renderer-tiles.cc:1492
#7 (anonymous namespace)::rt_queue_draw_idle_cb (data=0x5555559a1570)
at ../src/renderer-tiles.cc:1625
#8 0x00007ffff71c86ae in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9 0x00007ffff71cba4f in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007ffff71cc1d0 in g_main_context_iteration ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007ffff741b0bd in g_application_run ()
from /lib/x86_64-linux-gnu/libgio-2.0.so.0
#12 0x00005555555ad9b4 in main (argc=1, argv=0x7fffffffde68)
at ../src/main.cc:1142
Regards,
Jörg.
-------------------------------------- 8< -------------------------------------- Thanks - I'm starting to suspect that this is something that might be solved by upgrading libgdk-pixbuf-2.0-0 to the version in experimental (2.42.12+dfsg-4), which uses a glycin backend. See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1109199 If you can, I would be interested in if you see the crash with that installed. (It looks to me like a bug in libgdk-pixbuf-2.0-0 and not in geeqie). best /Andreas gusnan@debian.org
Andreas Rönnquist wrote on 02/12/2025 21:18:
<snip>
Upgrading gdk-pixbuf to the version in experimental (2.44.4+dfsg-3) doesn't work
either. The traceback is nearly alike:
Thread 1 "geeqie" received signal SIGSEGV, Segmentation fault.
scale_line (weights=0x5555561d03e0, n_x=23, n_y=23, dest=0x5555561c3840 "",
dest_x=<optimized out>, dest_end=0x5555561c39c0 "", dest_channels=3,
dest_has_alpha=0, src=0x555555e2ba80, src_channels=3, src_has_alpha=0,
x_init=-2102614528, x_step=1427313, src_width=39137, check_size=0,
color1=0, color2=0) at ../gdk-pixbuf/pixops/pixops.c:1071
warning: 1071 ../gdk-pixbuf/pixops/pixops.c: No such file or directory
(gdb) bt
#0 scale_line (weights=0x5555561d03e0, n_x=23, n_y=23,
dest=0x5555561c3840 "", dest_x=<optimized out>,
dest_end=0x5555561c39c0 "", dest_channels=3, dest_has_alpha=0,
src=0x555555e2ba80, src_channels=3, src_has_alpha=0, x_init=-2102614528,
x_step=1427313, src_width=39137, check_size=0, color1=0, color2=0)
at ../gdk-pixbuf/pixops/pixops.c:1071
#1 0x00007ffff7f79652 in pixops_process (dest_buf=<optimized out>,
render_x0=1536, render_y0=0, render_x1=<optimized out>, render_y1=128,
dest_rowstride=<optimized out>, dest_channels=3, dest_has_alpha=0,
src_buf=0x7ffe3d277010 "", src_width=39137, src_height=22279,
src_rowstride=117412, src_channels=3, src_has_alpha=0,
scale_x=<optimized out>, scale_y=<optimized out>, check_x=0, check_y=0,
check_size=0, color1=0, color2=0, filter=0x7fffffffd890,
line_func=0x7ffff7f77930 <scale_line>,
pixel_func=0x7ffff7f78d30 <scale_pixel>)
at ../gdk-pixbuf/pixops/pixops.c:1397
#2 0x00007ffff7f7a636 in _pixops_scale_real (dest_buf=0x5555561c3840 "",
render_x0=1536, render_y0=0, render_x1=1664, render_y1=128,
dest_rowstride=384, dest_channels=3, dest_has_alpha=0,
src_buf=<optimized out>, src_width=<optimized out>,
src_height=<optimized out>, src_rowstride=<optimized out>, src_channels=3,
src_has_alpha=0, scale_x=<optimized out>,
scale_x@entry=0.045915629711015149, scale_y=<optimized out>,
scale_y@entry=0.045917680326765117, interp_type=PIXOPS_INTERP_TILES)
at ../gdk-pixbuf/pixops/pixops.c:2425
#3 0x00007ffff7f7d224 in _pixops_scale (
dest_buf=dest_buf@entry=0x5555561c3840 "", dest_width=<optimized out>,
dest_height=<optimized out>, dest_rowstride=<optimized out>,
dest_channels=<optimized out>, dest_has_alpha=<optimized out>,
src_buf=<optimized out>, src_width=<optimized out>,
src_height=<optimized out>, src_rowstride=<optimized out>,
src_channels=<optimized out>, src_has_alpha=<optimized out>,
dest_x=<optimized out>, dest_y=<optimized out>,
dest_region_width=<optimized out>, dest_region_height=128,
offset_x=offset_x@entry=-1536, offset_y=offset_y@entry=0,
scale_x=scale_x@entry=0.045915629711015149,
scale_y=scale_y@entry=0.045917680326765117,
interp_type=PIXOPS_INTERP_TILES) at ../gdk-pixbuf/pixops/pixops.c:2482
#4 0x00007ffff7f74bff in gdk_pixbuf_scale (src=0x7fff2c0eb540,
dest=0x5555560ac5b0, dest_x=0, dest_y=0, dest_width=128, dest_height=128,
offset_x=<optimized out>, offset_y=0, scale_x=0.045915629711015149,
scale_y=0.045917680326765117, interp_type=GDK_INTERP_TILES)
at ../gdk-pixbuf/gdk-pixbuf-scale.c:84
#5 0x000055555565a5ac in (anonymous namespace)::rt_tile_render (
rt=0x55555599e600, it=0x55555602d840, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, new_data=1,
fast=<optimized out>) at ../src/renderer-tiles.cc:1423
#6 0x000055555565ba33 in (anonymous namespace)::rt_tile_expose (
rt=0x55555599e600, it=0x55555602d840, x=0, y=0, w=128, h=128,
new_data=<optimized out>, fast=1) at ../src/renderer-tiles.cc:1492
#7 (anonymous namespace)::rt_queue_draw_idle_cb (data=0x55555599e600)
at ../src/renderer-tiles.cc:1625
#8 0x00007ffff71c86ae in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9 0x00007ffff71cba4f in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007ffff71cc1d0 in g_main_context_iteration ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007ffff741b0bd in g_application_run ()
from /lib/x86_64-linux-gnu/libgio-2.0.so.0
#12 0x00005555555ad9b4 in main (argc=1, argv=0x7fffffffde68)
at ../src/main.cc:1142
Only some variable values are different. Maybe it's because I tried to resize to
a different window size.
Regards,
Jörg.
Reassigning to libgdk-pixbuf. /Andreas Rönnquist gusnan@debian.org
I also am unable to reproduce this with Debian Testing today. The large .jpg loaded (but slow) with geeqie, eog, and loupe. This is still with "classic" gdk-pixbuf. loupe always uses glycin though. Thank you, Jeremy Bícha
Jeremy Bícha wrote on 03/12/2025 19:54: May I ask, did you try to resize geeqie to full screen (my screen resolution is 2560x1440) when showing the large image? Regards, Jörg.
I just tried this with geeqie on my unstable Virtual machine, VM running in fullscreen 2560x1440, and on my stable (non-VM), and still no crash for me on neither of the variants. /Andreas gusnan@debian.org
No crash with fullscreen and a resolution of 3840x2160 in my VM (powered by GNOME Boxes). Resizing seemed to work. Can you reproduce this issue with eog? Thank you, Jeremy Bícha
Jeremy Bícha wrote on 03/12/2025 20:53: eog 47.0-5 doesn't show the very large image (39137x22279 pixel, size 175 MB) and issues the warning "Image dimensions too large to process" and "Failed to generate thumbnail: Child process exited with code 1". loupe works flawlessly and very fast when resizing, moving, and zooming to explore the very large image. Regards, Jörg.
gdk-pixbuf 2.44.5 in Testing is now powered by glycin. Does that fix this issue for you? Thank you, Jeremy Bícha
Jeremy Bícha wrote on 15/02/2026 14:34:
Hi Jeremy,
after upgrading gdk-pixbuf to
ii gir1.2-gdkpixbuf-2.0:amd64 2.44.5+dfsg-3
ii libgdk-pixbuf-2.0-0:amd64 2.44.5+dfsg-3
ii libgdk-pixbuf2.0-common 2.44.5+dfsg-3
geeqie still crashes when scaling the image to 1 and moving it.
A gdb run results now in:
$ gdb geeqie
...
(gdb) run
...
Thread 1 "geeqie" received signal SIGSEGV, Segmentation fault.
(anonymous namespace)::rt_tile_get_region (has_alpha=0,
ignore_alpha=<optimized out>, src=<optimized out>, dest=0x5555566b9e00,
pb_rect=..., offset_x=-37760, offset_y=-21248, scale_x=<optimized out>,
scale_y=<optimized out>, interp_type=GDK_INTERP_NEAREST, check_x=37760,
check_y=21248, wide_image=1) at ../src/renderer-tiles.cc:1245
⚠️ warning: 1245 ../src/renderer-tiles.cc: No such file or directory
(gdb) bt
#0 (anonymous namespace)::rt_tile_get_region (has_alpha=0,
ignore_alpha=<optimized out>, src=<optimized out>, dest=0x5555566b9e00,
pb_rect=..., offset_x=-37760, offset_y=-21248, scale_x=<optimized out>,
scale_y=<optimized out>, interp_type=GDK_INTERP_NEAREST, check_x=37760,
check_y=21248, wide_image=1) at ../src/renderer-tiles.cc:1245
#1 0x000055555565a5ac in (anonymous namespace)::rt_tile_render (
rt=0x555555a03ef0, it=0x5555567558f0, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, new_data=0,
fast=<optimized out>) at ../src/renderer-tiles.cc:1423
#2 0x000055555565ba33 in (anonymous namespace)::rt_tile_expose (
rt=0x555555a03ef0, it=0x5555567558f0, x=64, y=56, w=64, h=72,
new_data=<optimized out>, fast=1) at ../src/renderer-tiles.cc:1492
#3 (anonymous namespace)::rt_queue_draw_idle_cb (data=0x555555a03ef0)
at ../src/renderer-tiles.cc:1625
#4 0x00007ffff71d25ee in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5 0x00007ffff71d597f in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6 0x00007ffff71d6110 in g_main_context_iteration ()
from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#7 0x00007ffff74244bd in g_application_run ()
from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#8 0x00005555555ad9b4 in main (argc=1, argv=0x7fffffffde68)
at ../src/main.cc:1142
(gdb)
Thanks for caring.
Regards,
Jörg.