diff --git a/wrap/python/ajax/Makefile.am b/wrap/python/ajax/Makefile.am
index 48aad3e39..d881b3921 100644
--- a/wrap/python/ajax/Makefile.am
+++ b/wrap/python/ajax/Makefile.am
@@ -23,8 +23,9 @@
nodist_noinst_SCRIPTS = spot.py
EXTRA_DIST = $(srcdir)/spot.in README ltl2tgba.html css/ltl2tgba.css \
css/tipTip.css js/jquery.tipTip.minified.js js/jquery.ba-bbq.min.js \
- logos/lip6sys64.png logos/lrde64.png logos/spot64s.png \
- logos/mail.png css/ui-lightness/jquery-ui-1.8.13.custom.css \
+ js/jquery.ba-dotimeout.min.js logos/lip6sys64.png logos/lrde64.png \
+ logos/spot64s.png logos/mail.png \
+ css/ui-lightness/jquery-ui-1.8.13.custom.css \
css/ui-lightness/images/ui-icons_222222_256x240.png \
css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png \
css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png \
diff --git a/wrap/python/ajax/css/loading.gif b/wrap/python/ajax/css/loading.gif
new file mode 100644
index 000000000..e15844396
Binary files /dev/null and b/wrap/python/ajax/css/loading.gif differ
diff --git a/wrap/python/ajax/css/ltl2tgba.css b/wrap/python/ajax/css/ltl2tgba.css
index 471053d56..28b3038b2 100644
--- a/wrap/python/ajax/css/ltl2tgba.css
+++ b/wrap/python/ajax/css/ltl2tgba.css
@@ -119,6 +119,12 @@ table.ltltable
color: red;
}
+.ltl2tgba .loading {
+ display: block;
+ margin: 0 auto;
+ text-align: center;
+}
+
.ltl2tgba .neverclaim, .ltl2tgba .accrun {
font-family: monospace;
white-space: pre;
diff --git a/wrap/python/ajax/js/jquery.ba-dotimeout.min.js b/wrap/python/ajax/js/jquery.ba-dotimeout.min.js
new file mode 100644
index 000000000..02d9349c2
--- /dev/null
+++ b/wrap/python/ajax/js/jquery.ba-dotimeout.min.js
@@ -0,0 +1,9 @@
+/*
+ * jQuery doTimeout: Like setTimeout, but better! - v1.0 - 3/3/2010
+ * http://benalman.com/projects/jquery-dotimeout-plugin/
+ *
+ * Copyright (c) 2010 "Cowboy" Ben Alman
+ * Dual licensed under the MIT and GPL licenses.
+ * http://benalman.com/about/license/
+ */
+(function($){var a={},c="doTimeout",d=Array.prototype.slice;$[c]=function(){return b.apply(window,[0].concat(d.call(arguments)))};$.fn[c]=function(){var f=d.call(arguments),e=b.apply(this,[c+f[0]].concat(f));return typeof f[0]==="number"||typeof f[1]==="number"?this:e};function b(l){var m=this,h,k={},g=l?$.fn:$,n=arguments,i=4,f=n[1],j=n[2],p=n[3];if(typeof f!=="string"){i--;f=l=0;j=n[1];p=n[2]}if(l){h=m.eq(0);h.data(l,k=h.data(l)||{})}else{if(f){k=a[f]||(a[f]={})}}k.id&&clearTimeout(k.id);delete k.id;function e(){if(l){h.removeData(l)}else{if(f){delete a[f]}}}function o(){k.id=setTimeout(function(){k.fn()},j)}if(p){k.fn=function(q){if(typeof p==="string"){p=g[p]}p.apply(m,d.call(n,i))===true&&!q?o():e()};o()}else{if(k.fn){j===undefined?e():k.fn(j===false);return true}else{e()}}}})(jQuery);
\ No newline at end of file
diff --git a/wrap/python/ajax/ltl2tgba.html b/wrap/python/ajax/ltl2tgba.html
index 26fdbb24e..ed87a94da 100644
--- a/wrap/python/ajax/ltl2tgba.html
+++ b/wrap/python/ajax/ltl2tgba.html
@@ -12,6 +12,7 @@
+