diff --git a/.travis.yml b/.travis.yml
index a6fe6ea5e802dd84da6c14d383809c539c505f5c..d4998dbac23e329cf9f41e3043a817c403f0dd6e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,6 +10,7 @@ env:
    - DJANGO_VERSION=1.7
    - DJANGO_VERSION=1.8
    - DJANGO_VERSION=1.9
+   - DJANGO_VERSION=1.10
 matrix:
   exclude:
     - python: "3.3"
@@ -22,6 +23,8 @@ matrix:
       env: DJANGO_VERSION=1.7
     - python: "3.3"
       env: DJANGO_VERSION=1.9
+    - python: "3.3"
+      env: DJANGO_VERSION=1.10
 before_install:
   - sudo apt-get update -qq
   - sudo apt-get install -qq sloccount
@@ -35,7 +38,7 @@ install:
 script:
   - mkdir /home/travis/test_root/ -p
   - export TEST_PROJECT_ROOT=/home/travis/test_root/
-  - coverage run runtests.py test djangobower 2>test_out
+  - coverage run runtests.py test djangobower > >(tee stdout.log) 2> >(tee test_out >&2)
 after_success:
   - coverage report
   - pip install --quiet python-coveralls
diff --git a/djangobower/management/base.py b/djangobower/management/base.py
index 7d38feb96ef689743149485e28688e55a8da70bd..bac82337651efeef0b7617bbd205e71eec1c4637 100644
--- a/djangobower/management/base.py
+++ b/djangobower/management/base.py
@@ -10,6 +10,10 @@ class BaseBowerCommand(BaseCommand):
 
     requires_system_checks = False
 
+    # add fake .options_list for Django>=1.10
+    if not hasattr(BaseCommand, 'option_list'):
+        option_list = ()
+
     def handle(self, *args, **options):
         self._check_bower_exists()
         bower_adapter.create_components_root()
diff --git a/djangobower/management/commands/bower.py b/djangobower/management/commands/bower.py
index 734e2cbed8a6526bb6b60c285093f83562f4e43f..b8779e99664049a27b5cdbbbd69f0addb4f8c581 100644
--- a/djangobower/management/commands/bower.py
+++ b/djangobower/management/commands/bower.py
@@ -7,8 +7,13 @@ class Command(BaseBowerCommand):
     help = 'Call bower in components root ({0}).'.format(
         bower_adapter._components_root)
 
+    # for Django>=1.10
+    def add_arguments(self, parser):
+        parser.add_argument('command', nargs='*')
+
     def handle(self, *args, **options):
         super(Command, self).handle(*args, **options)
+        args = args or tuple(options.pop('command'))
         if self._is_single_command('install', args):
             self._install([])
         elif self._is_single_command('freeze', args):
diff --git a/djangobower/management/commands/bower_install.py b/djangobower/management/commands/bower_install.py
index 06d3d0c453641ef3d04bd48a3bc5a0ed10ca6b23..816329824aec2f8eeb5803a87f37053605e9fab6 100644
--- a/djangobower/management/commands/bower_install.py
+++ b/djangobower/management/commands/bower_install.py
@@ -5,6 +5,7 @@ from ..base import BaseBowerCommand
 class Command(BaseBowerCommand):
     help = 'Install bower apps'
 
+    # for Django<1.10
     option_list = BaseBowerCommand.option_list + (
         make_option('-F',
                     action='store_true',
@@ -17,6 +18,20 @@ class Command(BaseBowerCommand):
                     default=False,
                     help='Allow installing bower packages even when user executing this script is root'),
     )
+    # for Django>=1.10
+    def add_arguments(self, parser):
+        parser.add_argument('--force',
+                            '-F',
+                            action='store_true',
+                            dest='force',
+                            default=False,
+                            help='Force installation of latest package version on conflict')
+        parser.add_argument('--allow-root',
+                            '-R',
+                            action='store_true',
+                            dest='allow-root',
+                            default=False,
+                            help='Allow installing bower packages even when user executing this script is root')
 
     def handle(self, *args, **options):
         super(Command, self).handle(*args, **options)