diff --git a/src/DOM.title.js b/src/DOM.title.js
index <HASH>..<HASH> 100644
--- a/src/DOM.title.js
+++ b/src/DOM.title.js
@@ -1,4 +1,4 @@
-define(["DOM"], function(DOM) {
+define(["DOM"], function(DOM, _makeError) {
     "use strict";
 
     /**
@@ -13,10 +13,14 @@ define(["DOM"], function(DOM) {
     /**
      * Change current page title
      * @memberOf DOM
-     * @param  {String} [value] new title
+     * @param  {String} value new title
      * @return {DOM}
      */
     DOM.setTitle = function(value) {
+        if (typeof value !== "string") {
+            throw _makeError("setTitle", this);
+        }
+        
         document.title = value;
 
         return this;
diff --git a/test/spec/title.spec.js b/test/spec/title.spec.js
index <HASH>..<HASH> 100644
--- a/test/spec/title.spec.js
+++ b/test/spec/title.spec.js
@@ -7,4 +7,10 @@ describe("DOM.title", function() {
         expect(DOM.setTitle("abc")).toBe(DOM);
         expect(document.title).toBe("abc");
     });
+
+    it("should throw error if title is not a string", function() {
+        expect(function() { DOM.setTitle(); }).toThrow();
+        expect(function() { DOM.setTitle(123); }).toThrow();
+        expect(function() { DOM.setTitle(function() {}); }).toThrow();
+    });
 });
update DOM.setTitle and add additional tests