diff --git a/pagure/templates/pull_request_title.html b/pagure/templates/pull_request_title.html
new file mode 100644
index 0000000..480ac9b
--- /dev/null
+++ b/pagure/templates/pull_request_title.html
@@ -0,0 +1,29 @@
+{% extends "repo_master.html" %}
+{% from "_formhelper.html" import render_field_in_row %}
+
+{% block title %}Edit PR#{{ request.id }}: {{ request.title }} - {{ repo.name }}{% endblock %}
+{%block tag %}home{% endblock %}
+
+
+{% block repo %}
+
+
Edit PR#{{ request.id }}: {{ request.title }} - {{ repo.name }}
+
+
+
+{% endblock %}
diff --git a/pagure/ui/fork.py b/pagure/ui/fork.py
index f15cd58..8e5787b 100644
--- a/pagure/ui/fork.py
+++ b/pagure/ui/fork.py
@@ -324,6 +324,68 @@ def request_pull_patch(repo, requestid, username=None):
return flask.Response(patch, content_type="text/plain;charset=UTF-8")
+
+@APP.route('//pull-request//edit/',
+ methods=('GET', 'POST'))
+@APP.route('//pull-request//edit',
+ methods=('GET', 'POST'))
+@APP.route('/fork///pull-request//edit/',
+ methods=('GET', 'POST'))
+@APP.route('/fork///pull-request//edit',
+ methods=('GET', 'POST'))
+@cla_required
+def request_pull_edit(repo, requestid, username=None):
+ """ Edit the title of a pull-request.
+ """
+
+ repo = pagure.lib.get_project(SESSION, repo, user=username)
+
+ if not repo:
+ flask.abort(404, 'Project not found')
+
+ if not repo.settings.get('pull_requests', True):
+ flask.abort(404, 'No pull-requests found for this project')
+
+ request = pagure.lib.search_pull_requests(
+ SESSION, project_id=repo.id, requestid=requestid)
+
+ if not request:
+ flask.abort(404, 'Pull-request not found')
+
+ if not is_repo_admin(repo) \
+ or flask.g.fas_user.username != request.user.username :
+ flask.abort(403, 'You are not allowed to edit this pull-request')
+
+ form = pagure.forms.RequestPullForm()
+
+ if form.validate_on_submit():
+ request.title = form.title.data
+ SESSION.add(request)
+ try:
+ SESSION.commit()
+ flask.flash('Request pull edited!')
+ except SQLAlchemyError as err: # pragma: no cover
+ SESSION.rollback()
+ APP.logger.exception(err)
+ flask.flash(
+ 'Could not edit this pull-request in the database',
+ 'error')
+ return flask.redirect(flask.url_for(
+ 'request_pull', username=username,
+ repo=repo.name, requestid=requestid))
+ elif flask.request.method == 'GET':
+ form.title.data = request.title
+
+ return flask.render_template(
+ 'pull_request_title.html',
+ select='requests',
+ request=request,
+ repo=repo,
+ username=username,
+ form=form,
+ )
+
+
@APP.route('//pull-request//comment',
methods=['POST'])
@APP.route('//pull-request//comment//'