diff --git a/coder_sniffer/Drupal/Sniffs/Classes/UnusedUseStatementSniff.php b/coder_sniffer/Drupal/Sniffs/Classes/UnusedUseStatementSniff.php
index d7b3ea4..ff7b80f 100644
--- a/coder_sniffer/Drupal/Sniffs/Classes/UnusedUseStatementSniff.php
+++ b/coder_sniffer/Drupal/Sniffs/Classes/UnusedUseStatementSniff.php
@@ -63,14 +63,6 @@ class Drupal_Sniffs_Classes_UnusedUseStatementSniff implements PHP_CodeSniffer_S
             true
         );
 
-        // Seek along the statement to get the last part, which is the
-        // class/interface name.
-        while (isset($tokens[($classPtr + 1)]) === true
-            && in_array($tokens[($classPtr + 1)]['code'], array(T_STRING, T_NS_SEPARATOR)) === true
-        ) {
-            $classPtr++;
-        }
-
         if ($tokens[$classPtr]['code'] !== T_STRING) {
             return;
         }
@@ -78,9 +70,35 @@ class Drupal_Sniffs_Classes_UnusedUseStatementSniff implements PHP_CodeSniffer_S
         // Search where the class name is used. PHP treats class names case
         // insensitive, that's why we cannot search for the exact class name string
         // and need to iterate over all T_STRING tokens in the file.
-        $classUsed      = $phpcsFile->findNext(T_STRING, ($classPtr + 1));
+        $classUsed = $phpcsFile->findNext(T_STRING, ($classPtr + 1));
         $lowerClassName = strtolower($tokens[$classPtr]['content']);
 
+        // Check if the referenced class is in the same namespace as the current file. If it is then the use statement
+        // is not necessary.
+        $namespacePtr = $phpcsFile->findPrevious([T_NAMESPACE], $stackPtr);
+        if ($namespacePtr) {
+            $nsEnd = $phpcsFile->findNext(
+                [T_NS_SEPARATOR, T_STRING, T_WHITESPACE],
+                ($namespacePtr + 1),
+                null,
+                true
+            );
+            $namespace = trim($phpcsFile->getTokensAsString($namespacePtr + 1, $nsEnd - $namespacePtr - 1));
+
+            $useNamespacePtr = $phpcsFile->findNext([T_STRING], $stackPtr + 1);
+            $useNamespaceEnd = $phpcsFile->findNext(
+                [T_NS_SEPARATOR, T_STRING],
+                ($useNamespacePtr + 1),
+                null,
+                true
+            );
+            $use_namespace = rtrim($phpcsFile->getTokensAsString($useNamespacePtr, $useNamespaceEnd - $useNamespacePtr - 1), '\\');
+
+            if (strcasecmp($namespace, $use_namespace) === 0) {
+                $classUsed = FALSE;
+            }
+        }
+
         while ($classUsed !== false) {
             if (strtolower($tokens[$classUsed]['content']) === $lowerClassName) {
                 $beforeUsage = $phpcsFile->findPrevious(
diff --git a/coder_sniffer/Drupal/Test/Classes/UnusedUseStatementUnitTest.inc b/coder_sniffer/Drupal/Test/Classes/UnusedUseStatementUnitTest.inc
index 44ac3a4..e82f128 100644
--- a/coder_sniffer/Drupal/Test/Classes/UnusedUseStatementUnitTest.inc
+++ b/coder_sniffer/Drupal/Test/Classes/UnusedUseStatementUnitTest.inc
@@ -1,5 +1,7 @@
 <?php
 
+namespace MyNamespace\Depth;
+
 use Foo\Bar;
 use Bar\Fail;
 use Test\Bar\Thing;
@@ -11,6 +13,8 @@ use Thing\SomeName as OtherName;
 use Thing\DifferentName as UsedOtherName;
 use Another\UnusedUse;
 use Example\MyUrlHelper;
+use MyNamespace\Depth\UnusedSameNamespace;
+use /* I like weird comment placements */ MyNamespace\Depth\AnotherUnusedSameNamespace /* Oh yes I do */;
 
 /**
  * Bla.
@@ -40,4 +44,11 @@ class Pum {
 
   }
 
+  /**
+   * Don't need to use classes in the same namespace.
+   */
+  protected function test4(UnusedSameNamespace $x, AnotherUnusedSameNamespace $y) {
+
+  }
+
 }
diff --git a/coder_sniffer/Drupal/Test/Classes/UnusedUseStatementUnitTest.inc.fixed b/coder_sniffer/Drupal/Test/Classes/UnusedUseStatementUnitTest.inc.fixed
index 611f9db..54a478d 100644
--- a/coder_sniffer/Drupal/Test/Classes/UnusedUseStatementUnitTest.inc.fixed
+++ b/coder_sniffer/Drupal/Test/Classes/UnusedUseStatementUnitTest.inc.fixed
@@ -1,8 +1,6 @@
 <?php
 
-/**
- * @file
- */
+namespace MyNamespace\Depth;
 
 use Thing\Fail\ActuallyUsed;
 use Test\TraitTest;
@@ -37,4 +35,11 @@ class Pum {
 
   }
 
+  /**
+   * Don't need to use classes in the same namespace.
+   */
+  protected function test4(UnusedSameNamespace $x, AnotherUnusedSameNamespace $y) {
+
+  }
+
 }
diff --git a/coder_sniffer/Drupal/Test/Classes/UnusedUseStatementUnitTest.php b/coder_sniffer/Drupal/Test/Classes/UnusedUseStatementUnitTest.php
index da12a31..5ab188a 100644
--- a/coder_sniffer/Drupal/Test/Classes/UnusedUseStatementUnitTest.php
+++ b/coder_sniffer/Drupal/Test/Classes/UnusedUseStatementUnitTest.php
@@ -30,13 +30,15 @@ class Drupal_Sniffs_Classes_UnusedUseStatementUnitTest extends CoderSniffUnitTes
     public function getWarningList($testFile)
     {
         return array(
-                3 => 1,
-                4 => 1,
                 5 => 1,
-                8 => 1,
-                9 => 1,
+                6 => 1,
+                7 => 1,
                 10 => 1,
+                11 => 1,
                 12 => 1,
+                14 => 1,
+                16 => 1,
+                17 => 1,
                );
 
     }//end getWarningList()
