diff --git a/html/cgi-bin/pakfire.cgi b/html/cgi-bin/pakfire.cgi
index 0cf522ba1..f2381f031 100644
--- a/html/cgi-bin/pakfire.cgi
+++ b/html/cgi-bin/pakfire.cgi
@@ -44,6 +44,8 @@ $cgiparams{'VALID'} = '';
$cgiparams{'INSPAKS'} = '';
$cgiparams{'DELPAKS'} = '';
+my $page_lock;
+
sub refreshpage{&Header::openbox( 'Waiting', 1, "" );print "

$Lang::tr{'pagerefresh'}";&Header::closebox();}
&Header::getcgihash(\%cgiparams);
@@ -57,8 +59,9 @@ sub refreshpage{&Header::openbox( 'Waiting', 1, "
+
+
+
+ |
+
+
+ $Lang::tr{'pakfire working'}
+ |
+
+
+END
+ &Header::closebox();
+
+ # Infinite loop to lock the page until pakfire lockfile is present.
+ while($page_lock) {
+ unless (-e $Pakfire::lockfile) {
+ sleep(1);
+ } else {
+ # Release page lock.
+ undef($page_lock);
+
+ # Break loop.
+ last;
+ }
+ }
+
+ # Perform page reload.
+ print "\n";
+ exit;
+}
+
+# Check if pakfire is already running. In this case a lockfile is present.
if (-e $Pakfire::lockfile) {
&Header::openbox( 'Waiting', 1, "" );
print <