diff --git a/searx/engines/gigablast.py b/searx/engines/gigablast.py
index 3fef102f4..bdc9601ac 100644
--- a/searx/engines/gigablast.py
+++ b/searx/engines/gigablast.py
@@ -19,11 +19,21 @@ from time import time
 # engine dependent config
 categories = ['general']
 paging = True
-number_of_results = 5
+number_of_results = 10
+language_support = True
+safesearch = True
 
-# search-url, invalid HTTPS certificate
+# search-url
 base_url = 'https://gigablast.com/'
-search_string = 'search?{query}&n={number_of_results}&s={offset}&format=xml&qh=0&rxiyd={rxiyd}&rand={rand}'
+search_string = 'search?{query}'\
+    '&n={number_of_results}'\
+    '&s={offset}'\
+    '&format=xml'\
+    '&qh=0'\
+    '&rxiyd={rxiyd}'\
+    '&rand={rand}'\
+    '&qlang={lang}'\
+    '&ff={safesearch}'
 
 # specific xpath variables
 results_xpath = '//response//result'
@@ -36,12 +46,23 @@ content_xpath = './/sum'
 def request(query, params):
     offset = (params['pageno'] - 1) * number_of_results
 
-    search_path = search_string.format(
-        query=urlencode({'q': query}),
-        offset=offset,
-        number_of_results=number_of_results,
-        rxiyd=randint(10000, 10000000),
-        rand=int(time()))
+    if params['language'] == 'all':
+        language = 'xx'
+    else:
+        language = params['language'][0:2]
+
+    if params['safesearch'] >= 1:
+        safesearch = 1
+    else:
+        safesearch = 0
+
+    search_path = search_string.format(query=urlencode({'q': query}),
+                                       offset=offset,
+                                       number_of_results=number_of_results,
+                                       rxiyd=randint(10000, 10000000),
+                                       rand=int(time()),
+                                       lang=language,
+                                       safesearch=safesearch)
 
     params['url'] = base_url + search_path
 
diff --git a/searx/tests/engines/test_gigablast.py b/searx/tests/engines/test_gigablast.py
index 38264913f..4ae0c51a9 100644
--- a/searx/tests/engines/test_gigablast.py
+++ b/searx/tests/engines/test_gigablast.py
@@ -10,6 +10,7 @@ class TestGigablastEngine(SearxTestCase):
         query = 'test_query'
         dicto = defaultdict(dict)
         dicto['pageno'] = 0
+        dicto['language'] = 'all'
         params = gigablast.request(query, dicto)
         self.assertTrue('url' in params)
         self.assertTrue(query in params['url'])