diff --git a/scripts/coccicheck b/scripts/coccicheck
index 037424b..b8bcf1f 100755
--- a/scripts/coccicheck
+++ b/scripts/coccicheck
@@ -2,53 +2,79 @@
 
 SPATCH="`which ${SPATCH:=spatch}`"
 
+if [ "$C" = "1" -o "$C" = "2" ]; then
+    ONLINE=1
+
+# This requires Coccinelle >= 0.2.3
+#    FLAGS="-ignore_unknown_options -very_quiet"
+#    OPTIONS=$*
+
+# Workaround for Coccinelle < 0.2.3
+    FLAGS="-I $srctree/include -very_quiet"
+    shift $(( $# - 1 ))
+    OPTIONS=$1
+else
+    ONLINE=0
+    FLAGS="-very_quiet"
+fi
+
 if [ ! -x "$SPATCH" ]; then
     echo 'spatch is part of the Coccinelle project and is available at http://coccinelle.lip6.fr/'
     exit 1
 fi
 
 if [ "$MODE" = "" ] ; then
-    echo 'You have not explicitly specify the mode to use. Fallback to "report".'
-    echo 'You can specify the mode with "make coccicheck MODE=<mode>"'
-    echo 'Available modes are: report, patch, context, org'
+    if [ "$ONLINE" = "0" ] ; then
+	echo 'You have not explicitly specify the mode to use. Fallback to "report".'
+	echo 'You can specify the mode with "make coccicheck MODE=<mode>"'
+	echo 'Available modes are: report, patch, context, org'
+    fi
     MODE="report"
 fi
 
-echo ''
-echo 'Please check for false positives in the output before submitting a patch.'
-echo 'When using "patch" mode, carefully review the patch before submitting it.'
-echo ''
+if [ "$ONLINE" = "0" ] ; then
+    echo ''
+    echo 'Please check for false positives in the output before submitting a patch.'
+    echo 'When using "patch" mode, carefully review the patch before submitting it.'
+    echo ''
+fi
 
-function coccinelle {
+coccinelle () {
     COCCI="$1"
-    DIR="$2"
 
     OPT=`grep "Option" $COCCI | cut -d':' -f2`
-    FILE=`echo $COCCI | sed "s|$DIR/||"`
-
-    echo "Processing `basename $COCCI` with option(s) \"$OPT\""
-    echo 'Message example to submit a patch:'
-
-    sed -e '/\/\/\//!d' -e 's|^///||' $COCCI
-
-    echo ' The semantic patch that makes this change is available'
-    echo " in $FILE."
-    echo ''
-    echo ' More information about semantic patching is available at'
-    echo ' http://coccinelle.lip6.fr/'
-    echo ''
 
 #   The option '-parse_cocci' can be used to syntaxically check the SmPL files.
 #
-#    $SPATCH -D $MODE -very_quiet -parse_cocci $COCCI $OPT > /dev/null
+#    $SPATCH -D $MODE $FLAGS -parse_cocci $COCCI $OPT > /dev/null
 
-    $SPATCH -D $MODE -very_quiet -sp_file $COCCI $OPT -dir $DIR
+    if [ "$ONLINE" = "0" ] ; then
+
+	FILE=`echo $COCCI | sed "s|$srctree/||"`
+
+	echo "Processing `basename $COCCI` with option(s) \"$OPT\""
+	echo 'Message example to submit a patch:'
+
+	sed -e '/\/\/\//!d' -e 's|^///||' $COCCI
+
+	echo ' The semantic patch that makes this change is available'
+	echo " in $FILE."
+	echo ''
+	echo ' More information about semantic patching is available at'
+	echo ' http://coccinelle.lip6.fr/'
+	echo ''
+
+	$SPATCH -D $MODE $FLAGS -sp_file $COCCI $OPT -dir $srctree || exit 1
+    else
+	$SPATCH -D $MODE $FLAGS -sp_file $COCCI $OPT $OPTIONS || exit 1
+    fi
+
 }
 
 if [ "$COCCI" = "" ] ; then
     for f in `find $srctree/scripts/coccinelle/ -name '*.cocci' -type f | sort`; do
-	coccinelle $f $srctree;
+	coccinelle $f
     done
 else
-    coccinelle $COCCI $srctree
+    coccinelle $COCCI
 fi
