diff --git a/.travis.yml b/.travis.yml
index d207905..01cdd81 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,5 +13,5 @@ install: pip install -e .
 before_script: pokedex setup -v
 script:
     - py.test
-    - pokedex dump
+    - pokedex dump -l all
     - git --no-pager diff --exit-code pokedex/data/csv/
diff --git a/pokedex/db/load.py b/pokedex/db/load.py
index a13cc3f..b599a92 100644
--- a/pokedex/db/load.py
+++ b/pokedex/db/load.py
@@ -470,22 +470,34 @@ def dump(session, tables=[], directory=None, verbose=False, langs=None):
             writer = csv.writer(csvfile, lineterminator='\n')
             columns = [col.name.encode('utf8') for col in table.columns]
 
-        # For name tables, always dump rows for official languages, as well as
-        # for those in `langs` if specified.
-        # For other translation tables, only dump rows for languages in `langs`
-        # if specified, or for official languages by default.
-        # For non-translation tables, dump all rows.
+        # Tables always dump official languages.
+        # If there were any `langs` passed, then the official languages plus
+        # the specified `langs` will be dumped from the tables that have a 
+        # 'local_language_id' column.
+        # If the table doesn't have a 'local_language_id' column, then
+        # all the rows will be dumped.
         if 'local_language_id' in columns:
+            # If 'pokedex dump' OR 'pokedex dump -l none' were passed
+            # Only columns with official languages will be dumped.
             if langs is None:
                 def include_row(row):
                     return languages[row.local_language_id].official
-            elif any(col.info.get('official') for col in table.columns):
+            
+            # If 'pokedex dump -l all' was passed. All the columns will be 
+            # dumped, no matter if the language is official or not.
+            elif langs == ['all']:
+                def include_row(row):
+                    return True
+            
+            # If there is a/multiple language codes passed, then all the columns that are
+            # those languages OR are official languages will be dumped.
+            else:
                 def include_row(row):
                     return (languages[row.local_language_id].official or
                             languages[row.local_language_id].identifier in langs)
-            else:
-                def include_row(row):
-                    return languages[row.local_language_id].identifier in langs
+
+        # If there is no 'local_language_id' column in the table then all the rows
+        # are dumped.
         else:
             def include_row(row):
                 return True
diff --git a/pokedex/main.py b/pokedex/main.py
index 6044d9e..52fe039 100644
--- a/pokedex/main.py
+++ b/pokedex/main.py
@@ -114,7 +114,7 @@ def create_parser():
         help="directory to place the dumped CSV files")
     cmd_dump.add_argument(
         '-l', '--langs', dest='langs', default=None,
-        help="comma-separated list of language codes to load, 'none', or 'all' (default: en)")
+        help=u"comma-separated list of language codes to load, 'none', or 'all' (default: none)")
     cmd_dump.add_argument(
         'tables', nargs='*',
         help="list of database tables to load (default: all)")
@@ -209,6 +209,20 @@ def command_dump(parser, args):
 
     if args.langs is not None:
         langs = [l.strip() for l in args.langs.split(',')]
+        
+        # If the `langs` code is 'none' then langs is None so only the official languages
+        # from the tables will be dumped. This is the same as if no `langs` were passed.
+        if len(langs) == 1 and langs[0] == 'none':
+            langs = None
+
+        # Check if either 'all' or 'none' codes are used along side other codes.
+        # If either code is used, an error message will be displayed and the program will close.
+        elif len(langs) > 1 and 'all' in langs:
+            print("\nERROR: The 'all' code should be used by itself.")
+            return
+        elif len(langs) > 1 and 'none' in langs:
+            print("\nERROR: The 'none' code should be used by itself.")
+            return
     else:
         langs = None