diff --git a/src/main/org/codehaus/groovy/classgen/VariableScopeVisitor.java b/src/main/org/codehaus/groovy/classgen/VariableScopeVisitor.java
index 8a2153a..3203314 100644
--- a/src/main/org/codehaus/groovy/classgen/VariableScopeVisitor.java
+++ b/src/main/org/codehaus/groovy/classgen/VariableScopeVisitor.java
@@ -22,6 +22,7 @@
 import org.codehaus.groovy.ast.stmt.BlockStatement;
 import org.codehaus.groovy.ast.stmt.CatchStatement;
 import org.codehaus.groovy.ast.stmt.ForStatement;
+import org.codehaus.groovy.ast.stmt.IfStatement;
 import org.codehaus.groovy.ast.stmt.Statement;
 import org.codehaus.groovy.control.SourceUnit;
 
@@ -320,6 +321,16 @@
         popState();
     }
 
+    public void visitIfElse(IfStatement ifElse) {
+        ifElse.getBooleanExpression().visit(this);
+        pushState();
+        ifElse.getIfBlock().visit(this);
+        popState();
+        pushState();
+        ifElse.getElseBlock().visit(this);
+        popState();
+    }
+    
     public void visitDeclarationExpression(DeclarationExpression expression) {
         // visit right side first to avoid the usage of a
         // variable before its declaration
diff --git a/src/test/gls/scope/BlockScopeVisibilityTest.groovy b/src/test/gls/scope/BlockScopeVisibilityTest.groovy
index 84771fa..6211999 100644
--- a/src/test/gls/scope/BlockScopeVisibilityTest.groovy
+++ b/src/test/gls/scope/BlockScopeVisibilityTest.groovy
@@ -45,4 +45,13 @@
         assert c(1)() == 1
     }
 
-}
\ No newline at end of file
+    public void testForLoopStatement() {
+        // this example requires not to put the declaration
+        // into a block !
+        if (false)
+        int number = 1
+
+        shouldFail{ number }
+    }
+
+}
