diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,10 @@
+#### 0.3.9.6
+
+* Fixed the "cloud" having attribute "register" instead of "registerProcedure": https://validator.w3.org/feed/docs/rss2.html#ltcloudgtSubelementOfLtchannelgt (thanks to Daniele Francesconi)
+
 #### 0.3.9.5
 
-* Fix typo "skipDayss" -> "skipDays" in `Text.RSS.Export`
+* Fix typo "skipDayss" -> "skipDays" in `Text.RSS.Export` (thanks to Daniele Francesconi)
 
 #### 0.3.9.4
 
diff --git a/feed.cabal b/feed.cabal
--- a/feed.cabal
+++ b/feed.cabal
@@ -1,5 +1,5 @@
 name:                feed
-version:             0.3.9.5
+version:             0.3.9.6
 license:             BSD3
 license-file:        LICENSE
 category:            Text
diff --git a/src/Text/RSS/Export.hs b/src/Text/RSS/Export.hs
--- a/src/Text/RSS/Export.hs
+++ b/src/Text/RSS/Export.hs
@@ -132,7 +132,7 @@
          (  mb (Attr (qualName "domain")) (rssCloudDomain cl)
 	 ++ mb (Attr (qualName "port"))   (rssCloudPort cl)
 	 ++ mb (Attr (qualName "path"))   (rssCloudPath cl)
-	 ++ mb (Attr (qualName "register")) (rssCloudRegister cl)
+	 ++ mb (Attr (qualName "registerProcedure")) (rssCloudRegisterProcedure cl)
 	 ++ mb (Attr (qualName "protocol")) (rssCloudProtocol cl)
 	 ++ rssCloudAttrs cl) }
 
diff --git a/src/Text/RSS/Import.hs b/src/Text/RSS/Import.hs
--- a/src/Text/RSS/Import.hs
+++ b/src/Text/RSS/Import.hs
@@ -155,12 +155,12 @@
     { rssCloudDomain   = pAttr "domain" e
     , rssCloudPort     = pAttr "port" e
     , rssCloudPath     = pAttr "path" e
-    , rssCloudRegister = pAttr "register" e
+    , rssCloudRegisterProcedure = pAttr "registerProcedure" e
     , rssCloudProtocol = pAttr "protocol" e
     , rssCloudAttrs    = filter (\ a -> not (qName (attrKey a) `elem` known_attrs)) as
     }
  where
-  known_attrs = [ "domain", "port", "path", "register", "protocol" ]
+  known_attrs = [ "domain", "port", "path", "registerProcedure", "protocol" ]
 
 elementToItem :: XML.Element -> Maybe RSSItem
 elementToItem e = do
diff --git a/src/Text/RSS/Syntax.hs b/src/Text/RSS/Syntax.hs
--- a/src/Text/RSS/Syntax.hs
+++ b/src/Text/RSS/Syntax.hs
@@ -131,7 +131,7 @@
      { rssCloudDomain   :: Maybe String
      , rssCloudPort     :: Maybe String -- on purpose (i.e., not an int)
      , rssCloudPath     :: Maybe String
-     , rssCloudRegister :: Maybe String
+     , rssCloudRegisterProcedure :: Maybe String
      , rssCloudProtocol :: Maybe String
      , rssCloudAttrs    :: [XML.Attr]
      }
@@ -272,7 +272,7 @@
      { rssCloudDomain   = Nothing
      , rssCloudPort     = Nothing
      , rssCloudPath     = Nothing
-     , rssCloudRegister = Nothing
+     , rssCloudRegisterProcedure = Nothing
      , rssCloudProtocol = Nothing
      , rssCloudAttrs    = []
      }
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -1,18 +1,10 @@
 module Main (main) where
 
 import Test.Framework (defaultMain)
-import Test.Framework.Providers.HUnit (testCase)
-import Test.HUnit (Assertion, assertBool)
-import Text.Feed.Export
-import Text.Feed.Import
-import Text.XML.Light
+import Text.RSS.Tests (rssTests)
 
-import Paths_feed
 
 main :: IO ()
-main = defaultMain [testCase "rss20" testRss20]
-
-testRss20 :: Assertion
-testRss20 = do
-  putStrLn . ppTopElement . xmlFeed =<< parseFeedFromFile =<< getDataFileName "tests/files/rss20.xml"
-  assertBool "OK" True
+main = defaultMain [
+    rssTests
+    ]
