diff --git a/src/libs/cplusplus/findcdbbreakpoint.cpp b/src/libs/cplusplus/findcdbbreakpoint.cpp
index 8cc029393ddd88671c1f3e186bb4cc888c5486d0..2209689b601b3d62283cd8c5630191c044519f15 100644
--- a/src/libs/cplusplus/findcdbbreakpoint.cpp
+++ b/src/libs/cplusplus/findcdbbreakpoint.cpp
@@ -107,12 +107,6 @@ bool FindCdbBreakpoint::visit(QtMemberDeclarationAST *ast)
     return false;
 }
 
-bool FindCdbBreakpoint::visit(CaseStatementAST *ast)
-{
-    foundLine(ast->lastToken() - 1);
-    return false;
-}
-
 bool FindCdbBreakpoint::visit(CompoundStatementAST *ast)
 {
     accept(ast->statement_list);
diff --git a/src/libs/cplusplus/findcdbbreakpoint.h b/src/libs/cplusplus/findcdbbreakpoint.h
index a19a96d44ebc04824df71302d54e65951854d774..61b339c87d2e3534d03b458144cb2e29b0dab094 100644
--- a/src/libs/cplusplus/findcdbbreakpoint.h
+++ b/src/libs/cplusplus/findcdbbreakpoint.h
@@ -73,7 +73,6 @@ protected:
 
     // Statements:
     bool visit(QtMemberDeclarationAST *ast);
-    bool visit(CaseStatementAST *ast);
     bool visit(CompoundStatementAST *ast);
     bool visit(DeclarationStatementAST *ast);
     bool visit(DoStatementAST *ast);
diff --git a/tests/auto/cplusplus/misc/tst_misc.cpp b/tests/auto/cplusplus/misc/tst_misc.cpp
index b814992b8dc4ecd8c2469b5e0a93a9f122182852..b4390d450210afd726332bffcfc2b5520e1ac32a 100644
--- a/tests/auto/cplusplus/misc/tst_misc.cpp
+++ b/tests/auto/cplusplus/misc/tst_misc.cpp
@@ -49,6 +49,7 @@ private slots:
     void diagnosticClient_warning();
 
     void findBreakpoints();
+    void findBreakpoints2();
 };
 
 void tst_Misc::diagnosticClient_error()
@@ -101,8 +102,8 @@ void tst_Misc::findBreakpoints()
                          "  {\n"                // line 5
                          "  }\n"
                          "  void empty()\n"     // line 7
-                         "  {\n"
-                         "  }\n"                // line 9
+                         "  {\n"                // line 8
+                         "  }\n"
                          "  void misc()    \n"
                          "  {              \n"  // line 11
                          "    if (         \n"  // line 12
@@ -138,11 +139,43 @@ void tst_Misc::findBreakpoints()
     FindCdbBreakpoint findBreakpoint(doc->translationUnit());
 
     QCOMPARE(findBreakpoint(0), 5U);
-    QCOMPARE(findBreakpoint(7), 9U);
+    QCOMPARE(findBreakpoint(7), 8U);
     QCOMPARE(findBreakpoint(11), 16U);
     QCOMPARE(findBreakpoint(17), 23U);
     QCOMPARE(findBreakpoint(18), 23U);
 }
 
+void tst_Misc::findBreakpoints2()
+{
+    const QByteArray src("\n"                   // line 0
+                         "void foo() {\n"
+                         "  int a = 2;\n"       // line 2
+                         "  switch (x) {\n"     // line 3
+                         "  case 1: {\n"        // line 4
+                         "      int y = 2;\n"   // line 5
+                         "      y++;\n"
+                         "      break;\n"       // line 7
+                         "  }\n"
+                         "  }\n"
+                         "}\n"
+                         );
+    Document::Ptr doc = Document::create("findContstructorBreakpoint");
+    QVERIFY(!doc.isNull());
+    doc->setSource(src);
+    bool success = doc->parse();
+    QVERIFY(success);
+    QCOMPARE(doc->diagnosticMessages().size(), 0);
+    FindCdbBreakpoint findBreakpoint(doc->translationUnit());
+
+    QCOMPARE(findBreakpoint(0), 2U);
+    QCOMPARE(findBreakpoint(1), 2U);
+    QCOMPARE(findBreakpoint(2), 2U);
+    QCOMPARE(findBreakpoint(3), 3U);
+    QCOMPARE(findBreakpoint(4), 5U);
+    QCOMPARE(findBreakpoint(5), 5U);
+    QCOMPARE(findBreakpoint(6), 6U);
+    QCOMPARE(findBreakpoint(7), 7U);
+}
+
 QTEST_MAIN(tst_Misc)
 #include "tst_misc.moc"