diff --git a/addons/base_import/i18n/base_import.pot b/addons/base_import/i18n/base_import.pot
index 12537e2578dfc8842c4d7a79f8a1235fd970f31e..f652a916dba76e9b4416c896ee3b4177cf242705 100644
--- a/addons/base_import/i18n/base_import.pot
+++ b/addons/base_import/i18n/base_import.pot
@@ -293,6 +293,15 @@ msgstr ""
 msgid "Error Parsing Date [%s:L%d]: %s"
 msgstr ""
 
+#. module: base_import
+#: code:addons/base_import/models/base_import.py:0
+#, python-format
+msgid ""
+"Error while importing records: all rows should be of the same size, but the "
+"title row has %d entries while the first row has %d. You may need to change "
+"the separator character."
+msgstr ""
+
 #. module: base_import
 #. openerp-web
 #: code:addons/base_import/static/src/legacy/xml/base_import.xml:0
diff --git a/addons/base_import/models/base_import.py b/addons/base_import/models/base_import.py
index b8a34b0ea609c092e8d1e9714309424ca030c011..5c3e26731f5437c8fe6ea4ab8467d8f00def9239 100644
--- a/addons/base_import/models/base_import.py
+++ b/addons/base_import/models/base_import.py
@@ -1039,6 +1039,10 @@ class Import(models.TransientModel):
         import_fields = [f for f in fields if f]
 
         _file_length, rows_to_import = self._read_file(options)
+        if len(rows_to_import[0]) != len(fields):
+            raise ImportValidationError(
+                _("Error while importing records: all rows should be of the same size, but the title row has %d entries while the first row has %d. You may need to change the separator character.", len(fields), len(rows_to_import[0]))
+            )
 
         if options.get('has_headers'):
             rows_to_import = rows_to_import[1:]