Fix a join() issue
diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php
index 7490639..b99d4c6 100644
--- a/system/database/DB_query_builder.php
+++ b/system/database/DB_query_builder.php
@@ -343,7 +343,7 @@
 		$this->_track_aliases($table);
 
 		// Strip apart the condition and protect the identifiers
-		if (preg_match('/([\[\w\.]+)([\W\s]+)(.+)/', $cond, $match))
+		if (preg_match('/([\[\w\.-]+)([\W\s]+)(.+)/', $cond, $match))
 		{
 			$cond = $this->protect_identifiers($match[1]).$match[2].$this->protect_identifiers($match[3]);
 		}
diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst
index 03b541e..5627f02 100644
--- a/user_guide_src/source/changelog.rst
+++ b/user_guide_src/source/changelog.rst
@@ -248,6 +248,7 @@
 -  Fixed a bug (#1452) - protect_identifiers() didn't properly detect identifiers with spaces in their names.
 -  Fixed a bug where protect_identifiers() ignored it's extra arguments when the value passed to it is an array.
 -  Fixed a bug where _has_operator() didn't detect BETWEEN.
+-  Fixed a bug where :doc:`Query Builder <database/query_builder>`'s join failed with identifiers containing dashes.
 
 Version 2.1.1
 =============