diff --git a/Rakefile b/Rakefile
index 9cc3e9f8055ef11a414ace6ec8abcfc2f77e56a8..8028c52b66d2b0c03482c006da67eb534a310749 100644
--- a/Rakefile
+++ b/Rakefile
@@ -232,7 +232,6 @@ class JsDuckRunner
 
     head_html = <<-EOHTML
       <script type="text/javascript">
-        Docs.exampleBaseUrl = "#{relative_touch_path}examples/";
         if (Ext.is.Phone) { window.location = "#{relative_touch_path}examples/"; }
       </script>
     EOHTML
@@ -240,7 +239,8 @@ class JsDuckRunner
     @options += [
       "--body-html", head_html,
       "--welcome", "template-min/welcome.html",
-      "--eg-iframe", "template-min/eg-iframe.html"
+      "--eg-iframe", "template-min/eg-iframe.html",
+      "--examples-base-url", "#{relative_touch_path}examples/",
     ]
   end
 
diff --git a/lib/jsduck/app.rb b/lib/jsduck/app.rb
index 2bc8332f5feeedfa24ea4673790353ba33e56ed5..23ce01310d593aecccff9466320e23a790c7427d 100644
--- a/lib/jsduck/app.rb
+++ b/lib/jsduck/app.rb
@@ -52,7 +52,7 @@ module JsDuck
       @welcome = Welcome.create(@opts.welcome)
       @guides = Guides.create(@opts.guides, DocFormatter.new(@relations, @opts))
       @videos = Videos.create(@opts.videos)
-      @examples = Examples.create(@opts.examples)
+      @examples = Examples.create(@opts.examples, @opts)
       @categories = Categories.create(@opts.categories_path, DocFormatter.new(@relations, @opts), @relations)
 
       if @opts.export
diff --git a/lib/jsduck/examples.rb b/lib/jsduck/examples.rb
index b6678738dd13e419996bdb1d859a85cee97958c0..3970ca2ab036973d712c2a503f581778bd272e6d 100644
--- a/lib/jsduck/examples.rb
+++ b/lib/jsduck/examples.rb
@@ -6,17 +6,30 @@ module JsDuck
   # Reads in examples JSON file
   class Examples
     # Creates Examples object from filename.
-    def self.create(filename)
+    def self.create(filename, opts)
       if filename
-        Examples.new(filename)
+        Examples.new(filename, opts)
       else
         NullObject.new(:to_array => [])
       end
     end
 
     # Parses examples config file
-    def initialize(filename)
+    def initialize(filename, opts)
       @examples = JsonDuck.read(filename)
+      @opts = opts
+      prefix_urls
+    end
+
+    # Prefix all relative URL-s in examples list with path given in --examples-base-url
+    def prefix_urls
+      @examples.each do |group|
+        group["items"].each do |ex|
+          unless ex["url"] =~ /^https?:\/\//
+            ex["url"] = @opts.examples_base_url + ex["url"]
+          end
+        end
+      end
     end
 
     # Writes examples JSON file to dir
diff --git a/lib/jsduck/options.rb b/lib/jsduck/options.rb
index 67be4ac9ed8d2fed4b6a70d108f2a243e38e106a..011c5fe5865182be7e4f2f1dbb17283323cfdec3 100644
--- a/lib/jsduck/options.rb
+++ b/lib/jsduck/options.rb
@@ -31,6 +31,7 @@ module JsDuck
     attr_accessor :export
     attr_accessor :seo
     attr_accessor :eg_iframe
+    attr_accessor :examples_base_url
 
     # Debugging
     attr_accessor :processes
@@ -94,6 +95,7 @@ module JsDuck
       @export = nil
       @seo = false
       @eg_iframe = nil
+      @examples_base_url = "extjs/examples/"
 
       # Debugging
       # Turn multiprocessing off by default in Windows
@@ -276,6 +278,11 @@ module JsDuck
           @eg_iframe = canonical(path)
         end
 
+        opts.on('--examples_base_url=URL',
+          "Base URL for examples with relative URL-s.", " ") do |path|
+          @examples_base_url = path
+        end
+
         opts.separator "Debugging:"
         opts.separator ""
 
diff --git a/template/app/controller/Examples.js b/template/app/controller/Examples.js
index f19279166b2e946d48b73d7220a978a5568a0cf6..1ff40dab21d08e481c34de1c85dbb0560df62afe 100644
--- a/template/app/controller/Examples.js
+++ b/template/app/controller/Examples.js
@@ -131,7 +131,6 @@ Ext.define('Docs.controller.Examples', {
     },
 
     openInNewWindow: function() {
-        var example = this.getExample(this.activeUrl);
-        window.open((Docs.exampleBaseUrl || "touch/examples/") + example.url);
+        window.open(this.getExample(this.activeUrl).url);
     }
 });
diff --git a/template/app/view/examples/Container.js b/template/app/view/examples/Container.js
index 1fa3cace89cc473fbb9e373460350b7c7888e9d3..cf03f69c1b847e7f4e0e7b3782e763e717a4ba40 100644
--- a/template/app/view/examples/Container.js
+++ b/template/app/view/examples/Container.js
@@ -8,17 +8,11 @@ Ext.define('Docs.view.examples.Container', {
     alias: 'widget.examplecontainer',
     layout: 'fit',
 
-    exampleBaseUrl: "extjs/examples/",
-
     initComponent: function() {
         this.tpl = new Ext.XTemplate(
-            '<iframe style="width: 100%; height: 100%; border: 0;" src="{baseUrl}{url}"></iframe>'
+            '<iframe style="width: 100%; height: 100%; border: 0;" src="{url}"></iframe>'
         );
 
-        if (Docs.exampleBaseUrl) {
-            this.exampleBaseUrl = Docs.exampleBaseUrl;
-        }
-
         this.callParent(arguments);
     },
 
@@ -27,7 +21,6 @@ Ext.define('Docs.view.examples.Container', {
      * @param {Object} example Example object
      */
     load: function(example) {
-        example.baseUrl = this.exampleBaseUrl;
         this.update(this.tpl.apply(example));
     },
 
diff --git a/template/app/view/examples/TouchContainer.js b/template/app/view/examples/TouchContainer.js
index 103e023a7a03feae958be4bcf423ab754359c33c..cf712a144bc5702d7638125f32263fa62da9c114 100644
--- a/template/app/view/examples/TouchContainer.js
+++ b/template/app/view/examples/TouchContainer.js
@@ -14,7 +14,6 @@ Ext.define('Docs.view.examples.TouchContainer', {
     cls: 'example-container iScroll',
     autoScroll: true,
     bodyPadding: '10 0 5 0',
-    exampleBaseUrl: "touch/examples/",
 
     initComponent: function() {
         this.dockedItems = [{
@@ -40,10 +39,6 @@ Ext.define('Docs.view.examples.TouchContainer', {
             ].join('')
         }];
 
-        if (Docs.exampleBaseUrl) {
-            this.exampleBaseUrl = Docs.exampleBaseUrl;
-        }
-
         this.callParent(arguments);
     },
 
@@ -52,10 +47,9 @@ Ext.define('Docs.view.examples.TouchContainer', {
      * @param {Object} example Example object
      */
     load: function(example) {
-        var url = example.externalUrl || (this.exampleBaseUrl + example.url);
         this.title = example.text + " Example";
         this.device = Ext.create('Docs.view.examples.Device', {
-            url: url,
+            url: example.url,
             device: example.device || "phone",
             orientation: example.orientation || "landscape"
         });