             LOG.debug("Sending titles changes: title {0} - subtitle {1}", title, subtitle);
         }
 
-        localConnection.send(CNAME, 'setTitles', title, subtitle);
+        callViewerMethod('setTitles', title, subtitle);
+    }
+
+    private function callViewerMethod(methodName:String, ... values):void
+    {
+        try
+        {
+            //use Function#apply to avoid passing rest argument as Array
+            localConnection.send.apply(null, [ CNAME, methodName ].concat(values));
+        }
+        catch (error:Error)
+        {
+            if (Log.isDebug())
+            {
+                LOG.debug("Call to Viewer method {0} failed: {1}", methodName, error);
+            }
+        }
     }
 
     public function setLogo(value:String):void

            LOG.debug("Sending predefined changes {0}", value);
        }

        localConnection.send(CNAME, 'setPredefinedStyles', value);
    }
}
}

            LOG.debug("Sending logo changes {0}", value);
        }

        callViewerMethod('setLogo', value);
    }

    public function setTextColor(value:uint):void
