diff --git a/sub_published/liqflow/Makefile b/sub_published/liqflow/Makefile
index d0aab94..fc9f736 100644
--- a/sub_published/liqflow/Makefile
+++ b/sub_published/liqflow/Makefile
@@ -6,7 +6,7 @@ PREFIX		= $(DESTDIR)/usr
 cc = gcc
 LD = gcc
 OPT_FLAGS = -O3
-CFLAGS		= 
+CFLAGS		= -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include
 LDFLAGS	  = -lm -lliqbase -Wl,-export-dynamic
 RM			 = /bin/rm -f
 OBJSCORE	 = liqflow_cover.o liqflow_run.o liqflow_config.o
diff --git a/sub_published/liqflow/liqflow_run.c b/sub_published/liqflow/liqflow_run.c
index b01e8b8..9aca227 100644
--- a/sub_published/liqflow/liqflow_run.c
+++ b/sub_published/liqflow/liqflow_run.c
@@ -24,6 +24,8 @@
 
 #include <liqbase/liqaccel.h>
 
+#include <dbus/dbus.h>
+
 typedef struct
 {
 	float x;
@@ -56,11 +58,42 @@ typedef struct
 
 
 
+int view=1;
+static int pause_in_view = 0;
+DBusConnection* dbus_conn_session;
+
 
 //#########################################################################################
 //######################################################################################### touch
 //#########################################################################################
 
+void
+initialize_dbus(void){
+    char       *filter_string;
+    DBusError   error;
+
+    dbus_error_init (&error);
+    /* Add D-BUS signal handler for 'status_changed' */
+    dbus_conn_session = dbus_bus_get(DBUS_BUS_SESSION, &error);
+    if (dbus_conn_session){
+        filter_string =                                                                                                                         
+               g_strdup_printf("interface='org.maemo.livewp', member='pause_livebg_on_view%i'", view);
+        dbus_bus_add_match(dbus_conn_session, filter_string, &error);
+        if (dbus_error_is_set(&error)){
+             fprintf(stderr,"dbus_bus_add_match failed: %s", error.message);
+             dbus_error_free(&error);
+        }
+        g_free(filter_string);
+        filter_string =
+            g_strdup_printf("interface='org.maemo.livewp', member='play_livebg_on_view%i'", view);
+        dbus_bus_add_match(dbus_conn_session, filter_string, &error);
+        if (dbus_error_is_set(&error)){
+             fprintf(stderr,"dbus_bus_add_match failed: %s", error.message);
+             dbus_error_free(&error);
+        }
+        g_free(filter_string);
+    }
+}
 
 
 
@@ -450,7 +483,7 @@ moo:
 
 	static int widget_paint(liqcell *self, liqcellpainteventargs *args,liqcell *context)
 	{
-		
+		DBusMessage* msg;	
 		//liqapp_log("starpaint %4i,%4i :: '%s'::'%s'",args->mx,args->my,self->name,self->classname);
 		
 		//liqapp_log("drawing args==NULL==%i args->graph==NULL==%i",args==NULL,  args->graph==NULL);
@@ -478,10 +511,30 @@ moo:
 			// nothing for now...  should show a picture or something..
 		}
 		
+		if (pause_in_view == 0)
+			/* non blocking read of the next available message */
+			dbus_connection_read_write(dbus_conn_session, 0);
+	        else
+		      /* blocking read of the next available message */
+			dbus_connection_read_write(dbus_conn_session, 20000);
+
+	        msg = dbus_connection_pop_message(dbus_conn_session);
+
+	        if (NULL != msg){  
+			
+			if ( dbus_message_get_member (msg) &&
+			   !strncmp( "play_livebg_on_view", dbus_message_get_member (msg),19)){
+			       pause_in_view = 0; 
+			}
+			if ( dbus_message_get_member (msg) &&
+			    !strncmp( "pause_livebg_on_view", dbus_message_get_member (msg),19)){
+			       pause_in_view = 1;
+			}
+	        }
 		
-		//liqapp_log("drawing done");
-		return 1;
-	}
+			//liqapp_log("drawing done");
+			return 1;
+		}
 	
 
 
@@ -565,6 +618,7 @@ liqcell *liqflow_run_create()
 {
 	liqcell *self = liqcell_quickcreatewidget("liqflow_run","form", 800,480);
 
+        initialize_dbus();
 	if(self)
 	{
 		STAR *stars = (STAR *)malloc(sizeof(STAR) * (starcount+1));
