diff --git a/add_mirror.sh b/add_mirror.sh
index 8c0dbe3ce42f92ecf866438a6e428b9da051ee33..ed58fdaade69ade1ca39bfbba3d477d2ff9e9b99 100755
--- a/add_mirror.sh
+++ b/add_mirror.sh
@@ -4,5 +4,5 @@
 . "$(dirname $0)/config.sh"
 cd $(dirname $0)
 
-export token_secret gitlab_url gitlab_namespace
-python lib/create_gitlab_project.py test2
+export token_secret gitlab_url gitlab_namespace gitlab_user
+python lib/create_gitlab_project.py test3
diff --git a/config.sh b/config.sh
index 7240cd5c68e84475812d9c5efab196403f1eee12..9d472712726136ff3d2dd74265c4c3bd5ce0ff7f 100644
--- a/config.sh
+++ b/config.sh
@@ -6,3 +6,4 @@ token_secret="$(head -n1 /home/gitmirror/private_token)"
 #This group will contain all code mirrors
 gitlab_namespace="Mirrors"
 gitlab_url="https://comet.irt.drexel.edu"
+gitlab_user="gitmirror"
diff --git a/lib/create_gitlab_project.py b/lib/create_gitlab_project.py
index 2435de5d1e0cc2a4de6ff3b6ba41251c308c0f4d..d600c1e9fd51ec3f2c1e99e7bd6b56a2a97f894c 100755
--- a/lib/create_gitlab_project.py
+++ b/lib/create_gitlab_project.py
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-from sys import argv,exit
+from sys import argv,exit,stderr
 import os
 import gitlab
 
@@ -9,6 +9,7 @@ try:
   token_secret=os.environ['token_secret']
   gitlab_url=os.environ['gitlab_url']
   gitlab_namespace=os.environ['gitlab_namespace']
+  gitlab_user=os.environ['gitlab_user']
 except KeyError:
   print "Environment config missing.  Do not run this script standalone."
   exit(1)
@@ -18,25 +19,42 @@ except IndexError:
 
 git=gitlab.Gitlab(gitlab_url,token_secret)
 
-#Locate the group
-found_group=False
-for group in git.getGroups():
-  if group['name'] == gitlab_namespace:
-    found_group=group
-    break
-else:
-  if not found_group:
-    print "Project namespace (user or group) not found or user does not have permission of existing group."
-    exit(1)
+def findgroup(gname):
+  #Locate the group
+  found_group=False
+  for group in git.getGroups():
+    if group['name'] == gname:
+      return group
+  else:
+    if not found_group:
+      print >> stderr, "Project namespace (user or group) not found or user does not have permission of existing group."
+      exit(1)
+
+def findproject(gname,pname):
+  for project in git.getProjects():
+    if project['namespace']['name'] == gname and project['name'] == pname:
+      return project
+  else:
+    return False
+
+def createproject(pname):
+  description="Public mirror of %s." % project_name
+  new_project=git.createProject(pname,description=description,issues_enabled=False,wall_enabled=False,merge_requests_enabled=False,wiki_enabled=False,snippets_enabled=False)
+  new_project=findproject(gitlab_user,pname)
+  new_project=git.moveProject(found_group['id'],new_project['id'])
+  if findproject(gitlab_namespace,pname):
+    return findproject(gitlab_namespace,pname)
+  else:
+    return False
+
+found_group=findgroup(gitlab_namespace)
+found_project=findproject(gitlab_namespace,project_name)
 
-#Locate existing repository, if it doesn't exist then create it in gitlab
-found_project=False
-for project in git.getProjects():
-  if project['namespace']['name'] == gitlab_namespace and project['name'] == project_name:
-    found_project=project
-    break
 if not found_project:
-  print "not found"
-  pass
+  found_project=createproject(project_name)
+  if not found_project:
+    #print >> stderr, "There was a problem creating %s/%s.  Did you give %s user Admin rights in gitlab?" % {gitlab_namespace,project_name,gitlab_user}
+    print >> stderr, "There was a problem creating {group}/{project}.  Did you give {user} user Admin rights in gitlab?".format(group=gitlab_namespace,project=project_name,user=gitlab_user)
+    exit(1)
 
 print found_project['http_url_to_repo']