Index: django/core/management/__init__.py
===================================================================
--- django/core/management/__init__.py	(revision 7554)
+++ django/core/management/__init__.py	(working copy)
@@ -37,7 +37,17 @@
     parts = app_name.split('.')
     parts.append('management')
     parts.reverse()
+    part = parts.pop()
     path = None
+
+    # Skip the first module if we're in a directory of the same name.
+    # Without this ./manage.py doesn't pick up your app's management modules
+    try:
+        f, path, descr = find_module(part,path)
+    except ImportError,e:
+        if os.path.basename(os.getcwd()) != part:
+            raise e
+
     while parts:
         part = parts.pop()
         f, path, descr = find_module(part, path and [path] or None)
Index: tests/modeltests/user_commands/tests.py
===================================================================
--- tests/modeltests/user_commands/tests.py	(revision 0)
+++ tests/modeltests/user_commands/tests.py	(revision 0)
@@ -0,0 +1,32 @@
+from django.test import TestCase
+from os import getcwd, chdir, path
+from django.core.management import find_management_module, get_commands
+import sys
+
+class TestUserCommand(TestCase):
+
+    command_name = 'dance'
+    
+    def setUp(self):
+        self.old_wd   = getcwd()
+        self.app_wd   = path.dirname(__file__) 
+        self.cur_wd   = path.dirname(self.app_wd)
+        self.test_wd  = path.dirname(self.cur_wd)
+        self.app_name = ".".join(map(path.basename,(self.cur_wd,self.app_wd)))
+
+        if '' not in sys.path:
+            sys.path.insert(0,'')
+        if self.test_wd in sys.path:
+            sys.path.remove(self.test_wd)
+        chdir(self.cur_wd)
+
+    def testFindManagementModule(self):
+        find_management_module(self.app_name)
+        self.assertRaises(ImportError,find_management_module,self.app_name + "xxxxxx")
+
+    def testGetCommands(self):
+        self.assertTrue( self.command_name in get_commands().keys() )
+
+    def tearDown(self):
+        chdir(self.old_wd)
+        sys.path.insert(0,self.test_wd)
