Instead of hanging, it looks like it may actually just be aborting when the buy button is pushed again later, after the first attempt fails or such. I've got the following stack trace, where it appears to be trying to terminate a thread, which may already be dead: Thread 4 (Thread 0x7fffe95af700 (LWP 1665)): #0 0x00007ffff5e94117 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00007ffff5e95808 in __GI_abort () at abort.c:89 #2 0x00007ffff649b285 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #3 0x00007ffff64990f6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #4 0x00007ffff6499141 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #5 0x0000000000509809 in std::thread::operator=(std::thread&&) ( this=0x7fffe4010848, __t=) at /usr/include/c++/4.8/thread:151 #6 0x0000000000528f8d in Purchase::UalItem::run (this=0x7fffe4010818) at /home/dobey/Projects/canonical/pay-service/fix-script-path/service/purchase-ual.cpp:119 #7 0x0000000000514e9f in Item::MemoryItem::purchase (this=0x7fffe40112a8) at /home/dobey/Projects/canonical/pay-service/fix-script-path/service/item-memory.cpp:143 #8 0x000000000050adc5 in DBusInterfaceImpl::packageCall (this=0x7c0998, sender=0x7fffe4039d60 ":1.208", path=0x7fffe400ada0 "/com/canonical/pay/click_2Dscope", method=0x7fffe4039cd0 "PurchaseItem", params=0x7fffd8007870, invocation=0x7fffe40334b0) at /home/dobey/Projects/canonical/pay-service/fix-script-path/service/dbus-interface.cpp:263 #9 0x000000000050b0be in DBusInterfaceImpl::packageCall_staticHelper ( connection=0x7fffe400b090, sender=0x7fffe4039d60 ":1.208", path=0x7fffe400ada0 "/com/canonical/pay/click_2Dscope", ---Type to continue, or q to quit--- interface=0x7fffe4034e20 "com.canonical.pay.package", method=0x7fffe4039cd0 "PurchaseItem", params=0x7fffd8007870, invocation=0x7fffe40334b0, user_data=0x7c0998) at /home/dobey/Projects/canonical/pay-service/fix-script-path/service/dbus-interface.cpp:327 #10 0x00007ffff76b7151 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 #11 0x00007ffff70ddcc5 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #12 0x00007ffff70de028 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #13 0x00007ffff70de2ea in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #14 0x0000000000509daa in DBusInterfaceImpl::run()::{lambda()#1}::operator()() const (__closure=0x7c1040) at /home/dobey/Projects/canonical/pay-service/fix-script-path/service/dbus-interface.cpp:106 #15 0x0000000000513c9c in std::_Bind_simple::_M_invoke<>(std::_Index_tuple<>) (this=0x7c1040) at /usr/include/c++/4.8/functional:1732 #16 0x0000000000513b5f in std::_Bind_simple::operator()() (this=0x7c1040) at /usr/include/c++/4.8/functional:1720 #17 0x0000000000513a64 in std::thread::_Impl >::_M_run() (this=0x7c1028) at /usr/include/c++/4.8/thread:115 #18 0x00007ffff64f4de0 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #19 0x00007ffff4c18165 in start_thread (arg=0x7fffe95af700) at pthread_create.c:309 #20 0x00007ffff5f584dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111