diff --git a/metar/Metar.py b/metar/Metar.py
index 8da571d..e3cf432 100644
--- a/metar/Metar.py
+++ b/metar/Metar.py
@@ -1050,6 +1050,8 @@ class Metar(object):
         (RUNWAY_RE, _handleRunway, True),
         (WEATHER_RE, _handleWeather, True),
         (SKY_RE, _handleSky, True),
+        (WIND_RE, _handleWind, False),
+        (VISIBILITY_RE, _handleVisibility, True),
         (TEMP_RE, _handleTemp, False),
         (PRESS_RE, _handlePressure, True),
         (RECENT_RE, _handleRecent, True),

diff --git a/test/test_metar.py b/test/test_metar.py
index 9bafe17..19996a7 100644
--- a/test/test_metar.py
+++ b/test/test_metar.py
@@ -654,6 +654,19 @@ def test_cor_auto_mod():
 
     assert m.mod == 'COR AUTO'
 
+def test_wind_after_sky():
+    """
+    Test parsing of a METAR that lists wind after the sky groups
+    """
+
+    code = (
+        "METAR KCOF 281855Z FEW029TCU FEW040 SCT250 09008KT 7SM 32/25 A3008 "
+        "RMK VIRGA E TCU NE AND DSNT ALQDS SLP186"
+    )
+    m = Metar.Metar(code, year=2007)
+
+    assert m.wind_dir.value() == 90
+    assert m.wind_speed.value() == 8
 
 def test_issue136_temperature():
     raisesParserError("METAR EDDM 022150Z 26006KT CAVOK 201/16")

Unparsed group '09008KT 7SM' when wind is listed after sky groups.
The following METAR produces a ParserError:

METAR KCOF 281855Z FEW029TCU FEW040 SCT250 09008KT 7SM 32/25 A3008 RMK VIRGA E TCU NE AND DSNT ALQDS SLP186

Backtrace:

```
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/jhaiduce/Development/python-metar/metar/Metar.py", line 499, in __init__
    raise ParserError(message)
metar.Metar.ParserError: Unparsed groups in body '09008KT 7SM' while processing 'METAR KCOF 281855Z FEW029TCU FEW040 SCT250 09008KT 7SM 32/25 A3008 RMK VIRGA E TCU NE AND DSNT ALQDS SLP186'
```
test/test_metar.py::test_wind_after_sky
test/test_metar.py::test_xlate_loc test/test_metar.py::test_module test/test_metar.py::test_issue114_multiplebecominggroups test/test_metar.py::test_issue84_trimequals[] test/test_metar.py::test_issue84_trimequals[=] test/test_metar.py::test_issue84_trimequals[= test/test_metar.py::test_issue77_ice_accretion[1] test/test_metar.py::test_issue77_ice_accretion[3] test/test_metar.py::test_issue77_ice_accretion[6] test/test_metar.py::test_issue64_cloudkeyerror test/test_metar.py::test_issue67_precip_text test/test_metar.py::test_issue40_runwayunits test/test_metar.py::test_issue107_runwayunits test/test_metar.py::test_issue26_runway_slashes[R28L/////] test/test_metar.py::test_issue26_runway_slashes[R28L/////FT] test/test_metar.py::test_issue26_runway_slashes[R28L//////] test/test_metar.py::test_issue26_runway_slashes[R28L/////N] test/test_metar.py::test_010_parseType_default test/test_metar.py::test_011_parseType_legal test/test_metar.py::test_020_parseStation_legal test/test_metar.py::test_021_parseStation_illegal test/test_metar.py::test_030_parseTime_legal test/test_metar.py::test_031_parseTime_specify_year test/test_metar.py::test_032_parseTime_specify_month test/test_metar.py::test_033_parseTime_auto_month test/test_metar.py::test_034_parseTime_auto_year test/test_metar.py::test_035_parseTime_suppress_auto_month test/test_metar.py::test_040_parseModifier_default test/test_metar.py::test_041_parseModifier test/test_metar.py::test_042_parseModifier_nonstd test/test_metar.py::test_043_parseModifier_illegal test/test_metar.py::test_140_parseWind test/test_metar.py::test_141_parseWind_nonstd test/test_metar.py::test_issue139_no_wind_unit test/test_metar.py::test_issue51_strict test/test_metar.py::test_142_parseWind_illegal test/test_metar.py::test_150_parseVisibility test/test_metar.py::test_151_parseVisibility_direction test/test_metar.py::test_152_parseVisibility_with_following_temperature test/test_metar.py::test_290_ranway_state test/test_metar.py::test_300_parseTrend test/test_metar.py::test_snowdepth test/test_metar.py::test_310_parse_sky_conditions test/test_metar.py::test_not_strict_mode test/test_metar.py::test_cor_auto_mod test/test_metar.py::test_issue136_temperature