<?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>Short-term investments</ReportName>
  <ReportLongName>0208 - Disclosure - Short-term investments</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>Short-term investments [Abstract]</Label>
      <Level>0</Level>
      <ElementName>us-gaap_ShortTermInvestmentsAbstract</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>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>Short-term investments</Label>
      <Level>1</Level>
      <ElementName>vale_ShortTermInvestmentsTextBlock</ElementName>
      <ElementPrefix>vale</ElementPrefix>
      <IsBaseElement>false</IsBaseElement>
      <BalanceType>na</BalanceType>
      <PeriodType>duration</PeriodType>
      <ElementDataType>string</ElementDataType>
      <ShortDefinition>Investments which are intended to be sold in the short term (usually less than one year or the normal operating cycle, and...</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 8 - vale:ShortTermInvestmentsTextBlock--&gt;
    &lt;div style="font-family: Helvetica,Arial,sans-serif"&gt;
    &lt;div align="left" style="font-size: 10pt; margin-top: 12pt"&gt;&lt;b&gt;8 &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Short-term investments&lt;/b&gt;
    &lt;/div&gt;
    &lt;div align="center"&gt;
    &lt;table style="font-size: 10pt; text-align: left" cellspacing="0" border="0" cellpadding="0" width="100%"&gt;
    &lt;!-- Begin Table Head --&gt;
    &lt;tr valign="bottom"&gt;
    &lt;td width="76%"&gt;&amp;#160;&lt;/td&gt;
    &lt;td width="5%"&gt;&amp;#160;&lt;/td&gt;
    &lt;td width="1%"&gt;&amp;#160;&lt;/td&gt;
    &lt;td width="5%"&gt;&amp;#160;&lt;/td&gt;
    &lt;td width="1%"&gt;&amp;#160;&lt;/td&gt;
    &lt;td width="5%"&gt;&amp;#160;&lt;/td&gt;
    &lt;td width="1%"&gt;&amp;#160;&lt;/td&gt;
    &lt;td width="5%"&gt;&amp;#160;&lt;/td&gt;
    &lt;td width="1%"&gt;&amp;#160;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr style="font-size: 8pt" valign="bottom"&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td nowrap="nowrap" align="right" colspan="2" style="border-bottom: 1px solid #000000"&gt;&lt;b&gt;March 31, 2010&lt;/b&gt;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td nowrap="nowrap" align="right" colspan="2" style="border-bottom: 1px solid #000000"&gt;&lt;b&gt;December 31, 2009&lt;/b&gt;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr style="font-size: 8pt" valign="bottom"&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td nowrap="nowrap" align="right" colspan="2"&gt;&lt;b&gt;(unaudited)&lt;/b&gt;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;!-- End Table Head --&gt;
    &lt;!-- Begin Table Body --&gt;
    &lt;tr valign="bottom"&gt;
    &lt;td&gt;
    &lt;div style="margin-left:15px; text-indent:-15px"&gt;Time deposit
    &lt;/div&gt;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td align="right"&gt;12&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td align="right"&gt;3,747&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr style="font-size: 1px"&gt;
    &lt;td&gt;
    &lt;div style="margin-left:15px; text-indent:-15px"&gt;&amp;#160;
    &lt;/div&gt;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td nowrap="nowrap" colspan="2" align="right" style="border-top: 3px double #000000"&gt;&amp;#160;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;td nowrap="nowrap" colspan="2" align="right" style="border-top: 3px double #000000"&gt;&amp;#160;&lt;/td&gt;
    &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;!-- End Table Body --&gt;
    &lt;/table&gt;
    &lt;/div&gt;
    &lt;div align="left" style="font-size: 10pt; margin-top: 6pt; margin-left: 4%"&gt;Represent low risk investments with original due date over three-month.
    &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>Investments which are intended to be sold in the short term (usually less than one year or the normal operating cycle, and more than 90 days) including trading securities, available-for-sale securities, held-to-maturity securities, and other short-term investments.</ElementDefenition>
      <ElementReferences>No authoritative reference available.</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>
