diff --git a/web/warpauth/templates/warpauth/profile/change_password.html b/web/warpauth/templates/warpauth/profile/change_password.html
index 7f9a76827208957f6b5e924fd0c768d9350c91c2..d2e48ad24bc925a7346687f2505c4a6e4f8fb6e6 100644
--- a/web/warpauth/templates/warpauth/profile/change_password.html
+++ b/web/warpauth/templates/warpauth/profile/change_password.html
@@ -2,9 +2,8 @@
 
 <div>
     <br />
-    <form class="form-horizontal" method="POST" role="form">
+    <form class="form-horizontal" method="POST" action="/profile/change_password/" role="form">
         {% csrf_token %}
-        <input type="hidden" name="action" value="change_pw">
         <div class="form-group">
             <label class="control-label col-sm-2 col-lg-2 " for="id_old_pw">{% trans "Current Password" %}</label>
             <div class=" col-sm-10 col-lg-10 ">
@@ -23,7 +22,7 @@
                 <input class=" form-control" id="id_new_pw_confirm" name="new_pw_confirm" type="password" />
             </div>
         </div>
-         <div class="form-group">
+        <div class="form-group">
             <div class="col-sm-offset-2 col-sm-10">
                 <button style="float: left" type="submit" formmethod="post" class="btn btn-primary">Change Password</button>
             </div>
diff --git a/web/warpauth/urls.py b/web/warpauth/urls.py
index 07002e50ebf7659025b967bc2ea8da0a73ff2009..8e5288b7b02b18dd54b3beb89c5214677b4bb245 100644
--- a/web/warpauth/urls.py
+++ b/web/warpauth/urls.py
@@ -1,5 +1,5 @@
 from django.conf.urls import url
-from warpauth.views import main, login, reset_password, warp_food, profile
+from warpauth.views import main, login, reset_password, profile
 
 urlpatterns = [
     # Authentication Pages
@@ -10,6 +10,7 @@ urlpatterns = [
     url(r'^reset_password/(?P<reset_hash>\w+)/$', reset_password.change_password, name='index'),
 
     url(r'^profile/$', profile.index, name='index'),
+    url(r'^profile/change_password/$', profile.change_password, name='change_password'),
 
     # Main Page
     url(r'^$', main.index, name='index'),
diff --git a/web/warpauth/util.py b/web/warpauth/util.py
index 3f881d691061727d154e11e6175c167952e7dad7..24ec821b0a5a4f31e30ec4680b78ccc7b9e54b62 100644
--- a/web/warpauth/util.py
+++ b/web/warpauth/util.py
@@ -1,4 +1,25 @@
+import ldap
+
+from warpzone import settings
 pages = {'pages': [
     {"link":"pizza", "name": "PizzaSheet"},
     {"link":"about", "name": "About"},
 ]}
+
+
+def __init_ldap():
+    ldapObject = ldap.initialize(settings.AUTH_LDAP_SERVER_URI)
+    ldapObject.bind_s(settings.AUTH_LDAP_BIND_DN, settings.AUTH_LDAP_BIND_PASSWORD)
+    return ldapObject
+
+
+def ldap_change_password(user,old_pw, new_pw):
+    ldapObject = __init_ldap()
+    try:
+        ldapObject.passwd_s(user,old_pw,new_pw)
+        return 1
+    except ldap.UNWILLING_TO_PERFORM as e:
+        if 'unwilling to verify old password' in e:
+            return -1
+        return 0
+
diff --git a/web/warpauth/views/profile.py b/web/warpauth/views/profile.py
index 5d0853801553df7b82b6ef07436abb038154f613..2db2d4ea44a9cbda8c6105e660e00574ba4a0f50 100644
--- a/web/warpauth/views/profile.py
+++ b/web/warpauth/views/profile.py
@@ -2,11 +2,26 @@ from django.shortcuts import render
 from django.http import HttpResponse, HttpResponseBadRequest, HttpResponseNotAllowed, HttpResponseNotFound
 from django.shortcuts import redirect
 from django.contrib.auth.decorators import login_required
+from warpauth.models import LdapUser
 from warpauth.util import *
 
+##
+# http://www.python-ldap.org/doc/html/ldap.html#ldap.LDAPObject
+##
+
 @login_required(login_url='/login/', redirect_field_name=None)
 def index(request):
     print(request.user.ldap_user.group_names)
     pages['ldap_groups'] = request.user.ldap_user.group_names
+    #ldap_change_password(request.user.ldap_user.dn,"123456","12345")
+
     return HttpResponse(render(request, 'warpauth/profile.html', pages))
 
+
+@login_required(login_url='/login/', redirect_field_name=None)
+def change_password(request):
+    if request.method != 'POST':
+        redirect("/")
+    print(request.POST)
+
+    return HttpResponse(render(request, 'warpauth/profile.html', pages))
\ No newline at end of file
diff --git a/web/warpzone/settings.py b/web/warpzone/settings.py
index dbd23b862b0425fe627fd1397d7eef3e05f8bc08..34128273b2a2b720c0d41a9e3026ac1cb96444d2 100644
--- a/web/warpzone/settings.py
+++ b/web/warpzone/settings.py
@@ -120,12 +120,15 @@ AUTHENTICATION_BACKENDS = (
     'django.contrib.auth.backends.ModelBackend',
 )
 
+
+AUTH_LDAP_SERVER_URI = "ldap://s1.dyhost.de"
+
 AUTH_LDAP_BIND_DN = "cn=admin,dc=warpzone,dc=ms"
 AUTH_LDAP_BIND_PASSWORD = "12345"
 
-AUTH_LDAP_SERVER_URI = "ldap://s1.dyhost.de"
 
-AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=User,dc=warpzone,dc=ms",
+LDAP_USER_SEARCH_PATH = "ou=User,dc=warpzone,dc=ms"
+AUTH_LDAP_USER_SEARCH = LDAPSearch(LDAP_USER_SEARCH_PATH,
                                    ldap.SCOPE_SUBTREE, "(uid=%(user)s)")
 
 AUTH_LDAP_USER_ATTR_MAP = {"first_name": "givenName", "last_name": "sn", "email": "description"}
@@ -153,3 +156,4 @@ AUTH_LDAP_GROUP_CACHE_TIMEOUT = 300
 logger = logging.getLogger('django_auth_ldap')
 logger.addHandler(logging.StreamHandler())
 logger.setLevel(logging.DEBUG)
+