<?xml version="1.0" encoding="utf-8"?>
<InstanceReport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Version>2.0.0.10</Version>
  <hasSegments>false</hasSegments>
  <ReportName>Subsequent events</ReportName>
  <ReportLongName>0221 - Disclosure - Subsequent events</ReportLongName>
  <DisplayLabelColumn>true</DisplayLabelColumn>
  <ShowElementNames>false</ShowElementNames>
  <RoundingOption />
  <HasEmbeddedReports>false</HasEmbeddedReports>
  <Columns>
    <Column>
      <LabelColumn>false</LabelColumn>
      <Id>1</Id>
      <Labels>
        <Label Id="1" Label="3 Months Ended" />
        <Label Id="2" Label="Mar. 31, 2010" />
      </Labels>
      <CurrencyCode>usd</CurrencyCode>
      <CurrencySymbol>$</CurrencySymbol>
      <FootnoteIndexer />
      <hasSegments>false</hasSegments>
      <hasScenarios>false</hasScenarios>
      <Segments />
      <Scenarios />
      <Units>
        <Unit>
          <UnitID>USD</UnitID>
          <UnitType>Standard</UnitType>
          <StandardMeasure>
            <MeasureSchema>http://www.xbrl.org/2003/iso4217</MeasureSchema>
            <MeasureValue>USD</MeasureValue>
            <MeasureNamespace>iso4217</MeasureNamespace>
          </StandardMeasure>
          <Scale>0</Scale>
        </Unit>
        <Unit>
          <UnitID>USDEPS</UnitID>
          <UnitType>Divide</UnitType>
          <NumeratorMeasure>
            <MeasureSchema>http://www.xbrl.org/2003/iso4217</MeasureSchema>
            <MeasureValue>USD</MeasureValue>
            <MeasureNamespace>iso4217</MeasureNamespace>
          </NumeratorMeasure>
          <DenominatorMeasure>
            <MeasureSchema>http://www.xbrl.org/2003/instance</MeasureSchema>
            <MeasureValue>shares</MeasureValue>
            <MeasureNamespace>xbrli</MeasureNamespace>
          </DenominatorMeasure>
          <Scale>0</Scale>
        </Unit>
      </Units>
    </Column>
  </Columns>
  <Rows>
    <Row>
      <Id>2</Id>
      <Label>Subsequent events [Abstract]</Label>
      <Level>0</Level>
      <ElementName>vale_SubsequentEventsAbstract</ElementName>
      <ElementPrefix>vale</ElementPrefix>
      <IsBaseElement>false</IsBaseElement>
      <BalanceType>na</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>string</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>true</IsAbstractGroupTitle>
      <IsEquityPrevioslyReportedAsRow>false</IsEquityPrevioslyReportedAsRow>
      <IsEquityAdjustmentRow>false</IsEquityAdjustmentRow>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsReverseSign>false</IsReverseSign>
      <PreferredLabelRole />
      <IsEPS>false</IsEPS>
      <FootnoteIndexer />
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <IsRatio>false</IsRatio>
          <DisplayZeroAsNone>false</DisplayZeroAsNone>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText />
          <NonNumericTextHeader />
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
          <DisplayDateInUSFormat>false</DisplayDateInUSFormat>
        </Cell>
      </Cells>
      <OriginalInstanceReportColumns />
      <ElementDefenition>No definition available.</ElementDefenition>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
    <Row>
      <Id>3</Id>
      <Label>Subsequent events</Label>
      <Level>1</Level>
      <ElementName>us-gaap_ScheduleOfSubsequentEventsTextBlock</ElementName>
      <ElementPrefix>us-gaap</ElementPrefix>
      <IsBaseElement>true</IsBaseElement>
      <BalanceType>na</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>string</ElementDataType>
      <ShortDefinition>No definition available.</ShortDefinition>
      <IsReportTitle>false</IsReportTitle>
      <IsSegmentTitle>false</IsSegmentTitle>
      <IsSubReportEnd>false</IsSubReportEnd>
      <IsCalendarTitle>false</IsCalendarTitle>
      <IsTuple>false</IsTuple>
      <IsAbstractGroupTitle>false</IsAbstractGroupTitle>
      <IsEquityPrevioslyReportedAsRow>false</IsEquityPrevioslyReportedAsRow>
      <IsEquityAdjustmentRow>false</IsEquityAdjustmentRow>
      <IsBeginningBalance>false</IsBeginningBalance>
      <IsEndingBalance>false</IsEndingBalance>
      <IsReverseSign>false</IsReverseSign>
      <PreferredLabelRole>verboselabel</PreferredLabelRole>
      <IsEPS>false</IsEPS>
      <FootnoteIndexer />
      <Cells>
        <Cell>
          <Id>1</Id>
          <ShowCurrencySymbol>false</ShowCurrencySymbol>
          <IsNumeric>false</IsNumeric>
          <IsRatio>false</IsRatio>
          <DisplayZeroAsNone>false</DisplayZeroAsNone>
          <NumericAmount>0</NumericAmount>
          <RoundedNumericAmount>0</RoundedNumericAmount>
          <NonNumbericText>
    &lt;!--DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" --&gt;
    &lt;!-- Begin Block Tagged Note 21 - us-gaap:ScheduleOfSubsequentEventsTextBlock--&gt;
    &lt;div style="font-family: Helvetica,Arial,sans-serif"&gt;
    &lt;div style="margin-top: 6pt"&gt;
    &lt;table width="100%" border="0" cellpadding="0" cellspacing="0" style="font-size: 10pt; text-align: left"&gt;
    &lt;tr valign="top" style="font-size: 10pt; color: #000000; background: transparent"&gt;
    &lt;td width="3%" nowrap="nowrap" align="left"&gt;&lt;b&gt;21&lt;/b&gt;&lt;/td&gt;
    &lt;td width="1%"&gt;&amp;#160;&lt;/td&gt;
    &lt;td&gt;&lt;b&gt;Subsequent events&lt;/b&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;/table&gt;
    &lt;/div&gt;
    &lt;div style="margin-top: 6pt"&gt;
    &lt;table width="100%" border="0" cellpadding="0" cellspacing="0" style="font-size: 10pt; text-align: left"&gt;
    &lt;tr valign="top" style="font-size: 10pt; color: #000000; background: transparent"&gt;
    &lt;td width="3%" nowrap="nowrap" align="left"&gt;&amp;#160;&lt;/td&gt;
    &lt;td width="1%"&gt;&amp;#160;&lt;/td&gt;
    &lt;td&gt;For US $2,500, we acquired 51% interest on BSG Resources (Guinea) Ltd., which indirectly
    holds iron ore concession rights in Simandou South (Zogota), Guinea and iron ore exploration
    permits in Simandou North. From this amount, US$500 is payable immediately and the remaining
    US$2&amp;#160;billion on a phased basis upon achievement of specific milestones.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td style="font-size: 6pt"&gt;&amp;#160;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr valign="top" style="font-size: 10pt; color: #000000; background: transparent"&gt;
    &lt;td width="3%" nowrap="nowrap" align="left"&gt;&amp;#160;&lt;/td&gt;
    &lt;td width="1%"&gt;&amp;#160;&lt;/td&gt;
    &lt;td&gt;In connection with our strategy of active portfolio asset management, we entered into an
    agreement with Norsk Hydro ASA (Hydro), to transfer all our stakes in Albras &amp;#8212; Alum&amp;#237;nio
    Brasileiro S.A. (Albras), Alunorte &amp;#8212; Alumina do Norte do Brasil S.A. (Alunorte) and Companhia de
    Alumina do Par&amp;#225; (CAP), and 60% of the Paragominas bauxite mine and all its other Brazilian
    bauxite mineral rights. For this transactions we will receive US $1&amp;#160;billion in cash and 22% of
    Hydro&amp;#8217;s capital. In 2013 and 2015, we will sell the remaining 40% of Paragominas bauxite mine
    and other Brazilian bauxite mineral rights, for US $400.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;/table&gt;
    &lt;/div&gt;
    &lt;/div&gt;
  </NonNumbericText>
          <NonNumericTextHeader>&lt;!--DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" --&gt;
    &lt;!-- Begin Block Tagged Note</NonNumericTextHeader>
          <FootnoteIndexer />
          <hasSegments>false</hasSegments>
          <hasScenarios>false</hasScenarios>
          <DisplayDateInUSFormat>false</DisplayDateInUSFormat>
        </Cell>
      </Cells>
      <OriginalInstanceReportColumns />
      <ElementDefenition>Describes disclosed significant events or transactions that occurred after the balance sheet date, but before the issuance of the financial statements. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, losses resulting from fire or flood, losses on receivables, significant realized and unrealized gains and losses that result from changes in quoted market prices of securities, declines in market prices of inventory, changes in authorized or issued debt (SEC), significant foreign exchange rate changes, substantial loans to insiders or affiliates, significant long-term investments, and substantial dividends not in the ordinary course of business.</ElementDefenition>
      <ElementReferences>Reference 1: http://www.xbrl.org/2003/role/presentationRef
 -Publisher FASB
 -Name Statement of Financial Accounting Standard (FAS)
 -Number 5
 -Paragraph 11

</ElementReferences>
      <IsTotalLabel>false</IsTotalLabel>
    </Row>
  </Rows>
  <Footnotes />
  <ComparabilityReport>false</ComparabilityReport>
  <NumberOfCols>1</NumberOfCols>
  <NumberOfRows>2</NumberOfRows>
  <HasScenarios>false</HasScenarios>
  <MonetaryRoundingLevel>UnKnown</MonetaryRoundingLevel>
  <SharesRoundingLevel>UnKnown</SharesRoundingLevel>
  <PerShareRoundingLevel>UnKnown</PerShareRoundingLevel>
  <HasPureData>false</HasPureData>
  <SharesShouldBeRounded>true</SharesShouldBeRounded>
</InstanceReport>
