diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/PullRequestListController.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/PullRequestListController.java
index ae1bd8a..8acf8c5 100644
--- a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/PullRequestListController.java
+++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/PullRequestListController.java
@@ -166,14 +166,15 @@
       throws IncorrectObjectTypeException, IOException {
     List<GHPullRequest> repoPullRequests = Lists.newArrayList();
 
-    if (numPullRequests < config.pullRequestListLimit) {
+    int count = numPullRequests;
+    if (count < config.pullRequestListLimit) {
       for (GHPullRequest ghPullRequest : githubRepo.get()
           .listPullRequests(GHIssueState.OPEN)) {
 
         if (isAnyCommitOfPullRequestToBeImported(db, gitRepo,
             ghPullRequest)) {
           repoPullRequests.add(ghPullRequest);
-          numPullRequests++;
+          count++;
         }
       }
       if (repoPullRequests.size() > 0) {
@@ -182,7 +183,7 @@
     } else {
       allPullRequests.put(ghRepoName, null);
     }
-    return numPullRequests;
+    return count;
   }
 
   private Optional<GHRepository> getGHRepository(GitHubLogin login,
diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/VelocityControllerServlet.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/VelocityControllerServlet.java
index 561fbd0..bd908e7 100644
--- a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/VelocityControllerServlet.java
+++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/VelocityControllerServlet.java
@@ -108,14 +108,14 @@
 
   private String trimUpToChar(String string, char ch) {
     if (string.indexOf(ch) >= 0) {
-      string = string.substring(0, string.indexOf(ch));
+      return string.substring(0, string.indexOf(ch));
     }
     return string;
   }
 
   private String trimFromChar(String string, char ch) {
     if (string.lastIndexOf(ch) >= 0) {
-      string = string.substring(string.lastIndexOf(ch) + 1);
+      return string.substring(string.lastIndexOf(ch) + 1);
     }
     return string;
   }
