diff --git a/ForgeTracker/forgetracker/scripts/import_tracker.py b/ForgeTracker/forgetracker/scripts/import_tracker.py
index 965fafa..c991d11 100644
--- a/ForgeTracker/forgetracker/scripts/import_tracker.py
+++ b/ForgeTracker/forgetracker/scripts/import_tracker.py
@@ -27,11 +27,10 @@
 
 
 def import_tracker(cli, project, tool, import_options, doc_txt,
-                   validate=True, verbose=False, cont=False):
-    from allura import model as M
-    p = M.Project.query.get(shortname=project)
-    url = '/rest/{project_url}/{tool}'.format(
-            project_url=p.url().strip('/'),
+        validate=True, verbose=False, cont=False, neighborhood='p'):
+    url = '/rest/{neighborhood}/{project}/{tool}'.format(
+            neighborhood=neighborhood,
+            project=project,
             tool=tool,
             )
     if validate:
diff --git a/scripts/allura_import.py b/scripts/allura_import.py
index 63d14f1..270d988 100644
--- a/scripts/allura_import.py
+++ b/scripts/allura_import.py
@@ -60,20 +60,21 @@
     if options.tracker:
         import_tracker(
             cli, options.project, options.tracker, import_options, options, doc_txt,
-            validate=options.validate,
-            verbose=options.verbose)
+            validate=options.validate, verbose=options.verbose,
+            neighborhood=options.neighborhood)
     elif options.forum:
-        import_forum(cli, options.project, options.forum,
-                     user_map, doc_txt, validate=options.validate)
+        import_forum(cli, options.project, options.forum, user_map, doc_txt,
+                validate=options.validate, neighborhood=options.neighborhood)
     elif options.wiki:
-        import_wiki(cli, options.project, options.wiki, options, doc_txt)
+        import_wiki(cli, options.project, options.wiki, options, doc_txt,
+                neighborhood=options.neighborhood)
 
 
-def import_forum(cli, project, tool, user_map, doc_txt, validate=True):
-    from allura import model as M
-    p = M.Project.query.get(shortname=project)
-    url = '/rest/{project_url}/{tool}'.format(
-            project_url=p.url().strip('/'),
+def import_forum(cli, project, tool, user_map, doc_txt, validate=True,
+        neighborhood='p'):
+    url = '/rest/{neighborhood}/{project}/{tool}'.format(
+            neighborhood=neighborhood,
+            project=project,
             tool=tool,
             )
     if validate:
@@ -94,6 +95,9 @@
                          dest='secret_key', help='Secret key')
     optparser.add_option('-p', '--project', dest='project',
                          help='Project to import to')
+    optparser.add_option('-n', '--neighborhood', dest='neighborhood',
+                         help="URL prefix of destination neighborhood (default is 'p')",
+                         default='p')
     optparser.add_option('-t', '--tracker', dest='tracker',
                          help='Tracker to import to')
     optparser.add_option('-f', '--forum', dest='forum',
@@ -119,6 +123,7 @@
         optparser.error("Keys are required")
     if not options.project:
         optparser.error("Target project is required")
+    options.neighborhood = options.neighborhood.strip('/')
     return optparser, options, args
 
 
